Очень простая, но все еще довольно интересная статья про Optional и функторы, реализованные на Kotlin. Что это, зачем это, как оно работает - все есть в статье. Даешь ФП рабочим! Пис ✊🏻
#kotlin #fp
https://medium.com/@aballano/kotlin-functors-applicatives-and-monads-in-pictures-part-1-3-c47a1b1ce251
#kotlin #fp
https://medium.com/@aballano/kotlin-functors-applicatives-and-monads-in-pictures-part-1-3-c47a1b1ce251
Hacker Noon
Kotlin Functors, Applicatives, And Monads in Pictures. Part 1/3
This is a translation of Functors, Applicatives, And Monads In Pictures from Haskell into Kotlin.
Недавно я уже скидывал ссылку на статью про функторы, тогда автор только-только закончил первую часть цикла. Сейчас же цикл завершен, все три статьи готовы, и я призываю тебя на них посмотреть. Узнаешь не только о том, что такое функторы, но и о том, что такое applicative (не представляю, как это перевести) и монады. Ну и да, все это на Kotlin. Пис ☝🏻
#kotlin #fp #functor #applicative #monad
https://hackernoon.com/kotlin-functors-applicatives-and-monads-in-pictures-part-1-3-c47a1b1ce251
https://hackernoon.com/kotlin-functors-applicatives-and-monads-in-pictures-part-2-3-f99a09efd1ec
https://medium.com/@aballano/kotlin-functors-applicatives-and-monads-in-pictures-part-3-3-832d58d92445
#kotlin #fp #functor #applicative #monad
https://hackernoon.com/kotlin-functors-applicatives-and-monads-in-pictures-part-1-3-c47a1b1ce251
https://hackernoon.com/kotlin-functors-applicatives-and-monads-in-pictures-part-2-3-f99a09efd1ec
https://medium.com/@aballano/kotlin-functors-applicatives-and-monads-in-pictures-part-3-3-832d58d92445
Hackernoon
Kotlin Functors, Applicatives, And Monads in Pictures. Part 1/3
Here’s a simple value:
Подробная статья, в которой автор на чистой Java реализует Functor, Optional, Monad и показывает ещё несколько интересных штук. Рекомендую.
#fp #java #functor #monad #optional
http://www.nurkiewicz.com/2016/06/functor-and-monad-examples-in-plain-java.html
#fp #java #functor #monad #optional
http://www.nurkiewicz.com/2016/06/functor-and-monad-examples-in-plain-java.html
Around IT In 256 Seconds By Tomasz Nurkiewicz
Functor and monad examples in plain Java
Podcast for developers, testers, SREs… and their managers. I explain complex and convoluted technologies in a clear way, avoiding buzzwords and hype. Never longer than 4 minutes and 16 seconds.
Интересная статья про красоту Lisp’а. Если тебя, как это когда-то было со мной, пичкали в универе Lisp’ом, то, скорее всего, ничего нового ты не узнаешь. В обратном же случае, крайне рекомендую.
#lisp #fp
http://blog.rongarret.info/2018/02/yes-code-is-data-but-thats-not-what.html
#lisp #fp
http://blog.rongarret.info/2018/02/yes-code-is-data-but-thats-not-what.html
blog.rongarret.info
Yes, code is data, but that's not what makes Lisp cool
There has been some debate on Hacker News lately about what makes Lisp cool , in particular about whether the secret sauce is homo-iconici...
Очень приятная статья, в которой Иван Гришаев рассказывает, зачем нужен Clojure. Мне очень понравилось. Пойдите, почитайте. Она очень короткая, чесслово.
#fp #clojure
http://grishaev.me/why-clj
#fp #clojure
http://grishaev.me/why-clj
grishaev.me
Зачем нужна Кложа
Когда спрашивают, зачем изучать Кложу, мы слышим что-то неубедительное. Репл,функциональный подход, неизменяемость. Это слабые аргументы. Их нет в мире тех,к...
Бывает, несёшь себе кофеёк к компу. Путь пролегает не самый близкий - покинуть кухню, преодолеть коридор, крадучись занести кружку в комнату, не обосрав тот любимый белый ковёр, и водрузить, наконец, дрожащими руками заветный напиток на рабочий стол.
А тут, на тебе, в коридоре, прямо под ногами, песок какой-то. Ясное дело, подставил кто-то. Гады. Ну ты-то не мог, ты-то ногами об коврик пошаркал, когда с прогулки возвращался. Сволочи. А кофе-то запахом манит. Да и пролить не хочется, они от нас только этого и ждут, Бубба.
Тут ты и принимаешь стратегическое решение аккуратненько ножкой так ать, и смести песок куда-то в сторону. Пусть это будет проблема выходного тебя.
Вот так и с сайд-эффектами, всё время их диверсанты какие-то в наш чудесный код добавляют. Но хочется же их аккуратненько куда-то под коврик замести, и чтобы только там они где-то и водились, и не отсвечивали, пока не позовут. И чтобы нельзя было ими наши замечательные чистые функции попортить.
Вот в этом посте смотрят на использование
#kotlin #coroutine #fp
А тут, на тебе, в коридоре, прямо под ногами, песок какой-то. Ясное дело, подставил кто-то. Гады. Ну ты-то не мог, ты-то ногами об коврик пошаркал, когда с прогулки возвращался. Сволочи. А кофе-то запахом манит. Да и пролить не хочется, они от нас только этого и ждут, Бубба.
Тут ты и принимаешь стратегическое решение аккуратненько ножкой так ать, и смести песок куда-то в сторону. Пусть это будет проблема выходного тебя.
Вот так и с сайд-эффектами, всё время их диверсанты какие-то в наш чудесный код добавляют. Но хочется же их аккуратненько куда-то под коврик замести, и чтобы только там они где-то и водились, и не отсвечивали, пока не позовут. И чтобы нельзя было ими наши замечательные чистые функции попортить.
Вот в этом посте смотрят на использование
suspend модификатора для этих целей. Интересная идея, пометить всё, у чего есть сайд-эффекты, тогда компилятор не даст нам чистые куски запятнать. Особенно интересно в контексте Redux-like подходов на эту идею посмотреть.#kotlin #coroutine #fp
👨💻 Jorge Castillo
Tracking side effects at compile time with suspend
Thinking of suspend as a Kotlin stdlib mechanism for flagging and tracking effects at compile time. Going declarative Functional Programming puts a lot of emphasis on achieving concern separation between the pure logics of a program (algebras) and the runtime…
Тут показывают, чем
Мне почему-то кажется, что если проделывать такое приходится действительно часто, то, возможно, где-то мы свернули не туда. Ну, случаи бывают разные, может быть для кого-то это и впрямь оправданно. Да и выглядят эти
#arrowkt #fp #library
Arrow-kt может помочь, если приходится делать множественные вложенные .copy на data class’ах. Мне почему-то кажется, что если проделывать такое приходится действительно часто, то, возможно, где-то мы свернули не туда. Ну, случаи бывают разные, может быть для кого-то это и впрямь оправданно. Да и выглядят эти
modify и @optics не прямо фу-фу-фу.#arrowkt #fp #library
Показывать явно в возвращаемом типе, что функция может завершиться ошибкой, - идея не новая, хоть и всё ещё не заезженная. В этом посте чувак показывает, как такую Result monad можно на Kotlin написать. Реализация там, на мой взгляд, не во всём удачна (ну в какой, скажите, вселенной,
#fp #monad #kotlin
val reason: String достаточно для описания ошибки?), но достаточно хороша. #fp #monad #kotlin
Medium
And the Result is a monad
Adding superpowers to a custom type
Со всякими
Всегда интересно на такого рода вещи смотреть, но очень часто после этого хочется помыть руки. Просто посмотрите на финальный сниппет в посте. Коротко? Да. Но прочитать это человеку со стороны будет тяжеловато.
#fp
.flatMap, .filter и .reduce все уже давно знакомы. В этом посте рассказывают про .traverse. Всегда интересно на такого рода вещи смотреть, но очень часто после этого хочется помыть руки. Просто посмотрите на финальный сниппет в посте. Коротко? Да. Но прочитать это человеку со стороны будет тяжеловато.
#fp
Medium
Advanced FP for the Enterprise Bee: Traverse
Introduction
Интересный доклад с небольшим погружением в историю ЯП, чисто расслабиться вечерком: "Why Isn't Functional Programming the Norm?"
#talk #fp #language
#talk #fp #language
YouTube
Why Isn't Functional Programming the Norm? – Richard Feldman
Richard is a member of the Elm core team, the author of Elm in Action from Manning Publications, and the instructor for the Intro to Elm and Advanced Elm courses on Frontend Masters. He's been writing Elm since 2014, and is the maintainer of several open…
В Morgan Stanley были недовольны тем, что короткий, простой и понятный код не даёт нужной производительности, а ФП-подходы заставляют бороться со своей же системой типов, и написали халабуду, которая сама умеет тот самый простой и понятный код забатчить, запараллелить и другими способами осквернить.
#talk #fp #monad
#talk #fp #monad
YouTube
"Monad I Love You Now Get Out Of My Type System" by Gjeta Gjyshinca (Strange Loop 2022)
Traditionally, libraries that support asynchronous execution invade the type system, with monad-like constructs changing function signatures, and execution concerns inevitably leaking into business logic.
Our platform is different. Automated asynchronous…
Our platform is different. Automated asynchronous…
👍1
Всю это неделю я решил посвятить серии чудесных постов в прозе. Наслаждайтесь!
Reversing the technical interview
#interview #humor #fp
Reversing the technical interview
“That’s not a list,” the interviewer says. “That’s an if statement.”
“What else are lists,” you reply, your eyes flashing#interview #humor #fp
😐7👍2❤1
Hexing the technical interview
#interview #humor #fp
“We’re, uh, we’re not doing IO here. Just an in-memory list.”
Agree politely, but delete nothing. Never apologize for who you are.#interview #humor #fp
🤔10😐4❤1👍1🤯1
Typing the technical interview
#interview #humor #fp
“You’re… defining the natural numbers by hand? Why?”
“Haskell is for mathematicians,” you explain. “We always define our terms.”#interview #humor #fp
👍2❤1
Rewriting the Technical Interview
#interview #humor #fp
“People always complain,” you murmur. “That Lisps have too many parentheses. What they really mean is that their positions are too far to the left.”#interview #humor #fp
😐6❤1👍1
Unifying the Technical Interview
#interview #humor #fp
“You absolute madwoman,” Aisha chortles. “You can’t remember how to balance a binary tree, but you memorized µKanren?”#interview #humor #fp
🤔5
И а-ля фанфик, бонусом.
Typescripting the technical interview
#interview #humor #fp
Typescripting the technical interview
“Okay, that looks like a correct solution, but the code is quite hard to follow, and it’s not very concise.” he asserts, wrongly.
“Oh it’s mostly just TypeScript boilerplate. I think you’ll find once it’s compiled down to JavaScript it’s perfectly concise.” you reassure him.
Invoke the compiler#interview #humor #fp
Richard-Towers
Richard Towers | Typescripting the technical interview
An homage to Aphyr's Typing the technical interview
😐7❤1😁1
Отличное эссе сразу о многом, по большей части о мутабельном состоянии, и о том, как с ним пытались работать, где в этом всем ФП, ООП, Rust и проч.
#programming #fp #oop
#programming #fp #oop