Alexander
Prelude> flip (:) [] 42 [42]
Alexander
подойдет, то подойдет, но тут скорее интересна задача зачем это надо
Alexander
Prelude> flip (:) [1] 42 [42,1]
Alexander
не думаю, что вы хотели такого поведения
Aleksei (astynax)
Хотите смешного? В Elm есть такие типы type Dict a b = ... -- kind "* -> * -> *" type List a = ... -- kind "* -> *" type Maybe a = ... -- kind "* -> *" При этом сейчас валиден такой код x : Dict Maybe List x = Dict.empty о_О
доня.
эм
доня.
это как так-то
Cheese
ленивая типизация?
Alexander
косяки в тайчеккере?
Aleksei (astynax)
Добавление не тайпчекнется
Aleksei (astynax)
И непустой словарик такой не создать
Aleksei (astynax)
Баг висит, так что починят. Но всё равно срёмно
доня.
ленивая типизация?
как в JS что ли?
Cheese
как в JS что ли?
нет, в JS вообще нет типов
Aleksei (astynax)
Самый частый случай: List List Int - сахара для спискового типа нету и новички постоянно ошибаются в типе "список списков"
доня.
Aleksei (astynax)
Чекается
Aleksei (astynax)
Maybe (List () () ()) (Dict ()) и такое тоже
Aleksei (astynax)
При подставновке параметра типа не проверяется кайнд того, что подставляется
Aleksei (astynax)
И вообще похоже кайнд не проверяется.
Aleksei (astynax)
В ишшуе ответили > Either the compiler makes it impossible to represent * -> * types, or, it comes fully supported. Currently, we're somewhere in between: one can have the type, but not alias it, nor construct a value of that type. Но сконструировать мы уже смогли :)
Aleksei (astynax)
Интеречно, под "impossible to represent * -> * types" они подразумевают выпиливание параметрического полиморфизма? :)
доня.
шо-то пиздец какой-то
Aleksei (astynax)
у elm-compiler много "забавных" issues
adam
а почему это вообще работает?
Alexander
потому что компилятор кривой?
Aleksei (astynax)
Казалось бы, в языке, в котром нет HKT, проверить, что ты подставляешь недопримененный тип, должно быть просто...
A64m
видимо не проверять еще проще в данном случае
Alexander
+
Anonymous
есть ли название у комбинатора flip blackbird?
Alexander
:t blackbird
кана
blackbird :: (c -> d) -> (a -> b -> c) -> a -> b -> d
кана
это такой (.).(.) вроде
Dmitry
рыба же есть
Зигохистоморфный
все птицы (комбинаторы) были всегда тут http://www.angelfire.com/tx4/cus/combinator/birds.html
Зигохистоморфный
имени для флипнутой этой пттцы нет
Зигохистоморфный
labcd.a(bcd) <- Blackbird labcd.a(bc)d <- ?
adam
coblackbird ~ whitebird
Зигохистоморфный
я об этом думал)
Anonymous
cardinalBlackbird?
Alexander
не использовать
Alexander
а написать по человечески
Alexander
с fmap или <&>
Alexander
смотря в какую сторону
Alexander
[27 of 34] Compiling Language.R.Internal.FunWrappers ( src/Language/R/Internal/FunWrappers.hs, .stack-work/dist/x86_64-linux/Cabal-2.0.0.2/build/Language/R/Internal/FunWrappers.o ) ghc: panic! (the 'impossible' happened) (GHC version 8.2.1 for x86_64-unknown-linux): Loading temp shared object failed: /run/user/1001/ghc18919_0/libghc_164.so: failed to map segment from shared object Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
Anonymous
хз как мне они помогут
Alexander
обожаю ghc
Anonymous
Prelude Control.Monad> divisible = flip $ cardinalBlackbird mod (== 0)
Alexander
a `divisibleBy` b = a `mod` b == 0
Alexander
мне кажется немного понятнее и меньше буков
Зигохистоморфный
инфиксы же)
Alexander
даже divisible = (((==0) . mod.).)
Alexander
(на проверял)
Anonymous
лол
Alexander
понятнее чем то, что ж там у тебя за птица
Anonymous
это ужасно
Anonymous
pick x | fizzbuzz x = "fizzbuzz" | fizz x = "fizz" | buzz x = "buzz" | otherwise = show x как такое в поинтфри сделать?
Alexander
зачем?
Alexander
на стрелках можно легко
Anonymous
ооо
Alexander
можно где-то у меня на жуйке найти
Alexander
for some definition of легко
Anonymous
через (|||)?
Alexander
я не хочу повторять это
Alexander
я убил хороший кусок времени
Anonymous
хм
Anonymous
надо запилить список кейсов и строк отдельно
Влод
пойнтфри конечная цель
adam
поинтфри головного мозга
Зигохистоморфный
поинтфри не всегда нужная цель
Alexander
картинка_с_графиком_использования_pointfree_во_времени_с_точкой_когда_прочитал_про_pointfree.svg
Alexander
ну может человек мозг тренирует и пытается решить это как задачу, чего пристали
Alexander
в итоге накопится опыт написания, чтения и понимания когда стоит, а когда нет