Size: a a a

ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))

2019 December 14

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
нужно доделать в первую очередь if для Choice
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
λoλzod
ну я вообще абстрактного пользака имею в виду
абстрактному пользователю стрелок клеисли не нужны
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
существует синтаксис для композиции стрелок клеисли
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
он называется for comprehension
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
для всех остальных стрелок синтаксиса нет
источник

ᛒᚨᚱᛏᛟᛋᛋᛟ in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
Oleg ℕizhnik
но ты можешь юзать волгу и спокойно написать

http{ () =>
 val a = getQueryParam("a")()
 val b = getQueryParam("b")()
 val c  = getBody()
 authenticate()
 checkPost()
 foo(a, b, c)
}
ладно уговорил, тоже буду волгу ковырять
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
зачем тащить либу и синтаксис, если можешь возспользоваться чем-то, что в язык встроено
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
Oleg ℕizhnik
нужно доделать в первую очередь if для Choice
потом нужно сделать оптимизацию стрелок. чтобы они юзали mergeMapN
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
генерацию бойлерплейтов, чтобы до 22 всё иметь
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
честно говоря, придумывать, что бы сделать с cats.data.Kleisli мне пока не хочется
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
тем более, что меня всегда бесило решение засунуть Kleisli и ReaderT в один тип
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
так что пусть сами себе всё композят
источник

A

Alexander in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
Oleg ℕizhnik
похоже код на стрелках лучше фора выглядит
Похоже, ага.
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
Alexander
Похоже, ага.
очень не хочется деревья ворочать вглубь
источник

A

Alexander in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
Oleg ℕizhnik
очень не хочется деревья ворочать вглубь
Хорошо, что этим всем Олег занимается.
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
с одной стороны несложно - обойти и найти везде ref("name") , где name - имя известной мне переменной
источник

λ

λoλzod in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
извини за упрямость, но как мне без всяких IO рантаймов и бойлерплейта сделать вот такое
  type Run[A, B] = Kleisli[Eval, A, B]
 val printLn: Run[String, Unit] = Kleisli(msg => Eval.always(println(msg)))


ну вероятно есть какой-то простой способ, может туплю
источник

λ

λoλzod in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
хотя это наверное надуманно
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
с другой стороны там же может быть какое-то говно типа
val x = arr(x)
val y = ~(!x + 2).filter(x => x %2 == 0)
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
и как это можно предусмотреть
источник