Ilya
без явной аннотации типа тоже катит:)
Влод
ну это я про слово сущность. в общем казус этого диалога в том что @newrlan понимал = как равенство из логики (кто знаком с логикой мб подскажет крутое слово), ну чтобы тип в обе стороны подсталялся
Ilya
а надо понимать в смысле хаскелловского клауза
Ilya
мы же изначально говорили именно о них
Ilya
($) (.) = (.)
Ilya
думаю (любая функция $) = этаже функция
Влод
($) (.) = (.)
на тот момент он мог иметь ввиду не хаскельный клауз. а некое абсолютное равенство по типу и семантике. при том что у $ есть некая своя хитрость при компиляции, но в данном случае она не должна сработать
Нурлан
у функции $ на сколько я помню есть приоритет
Нурлан
и у функции (.) тоже приоритет
Ilya
0, да
Нурлан
равенство имелось в виду абсолютное, да
Нурлан
функция (.) должна по приоритету выполниться раньше функции ($)
Нурлан
для меня это вопрос, что там получится
Нурлан
по мотивации, я вас понимаю
Нурлан
и по результату вопроса нет
Нурлан
мне интересно как это в кишках там сработает
Ilya
а прагма RULES это не из этой области?
Влод
что это
Ilya
оптимизирующие выражения
Ilya
например map f (map g x) = map (f . g) x
Ilya
можно сказать компилятору, чтобы он заменял все вхождения такие
Ilya
прагмой RULES
Влод
да погуглил. и что-то я не хочу такое знать)
Ilya
то, что слева, на то, что справа
Нурлан
все оказалось проще, действительно приоритет играешь важную роль
Нурлан
(.)($) имеет совершенно другую сигнатуру
Ilya
а можно пример того, о чём речь шла
Ilya
т.е. какие два выражения не равны?
Ilya
чтобы можно было прям вбить в ghci
Quet
мне кажется или вы каким-то фп-онанизмом тут занимаетесь? )
Ilya
зато не монаду теребим, как тут недавно проскакивало 😀
Quet
даже не знаю что хуже... )
melvin
удачно я сюда заглянул
melvin
мне кажется или вы каким-то фп-онанизмом тут занимаетесь? )
melvin
зато не монаду теребим, как тут недавно проскакивало 😀
Ilya
ну лично мне, как начинающему, такой "фп-онанизм" гораздо интереснее нюансов установки cabal в докер
Ilya
которые тут на мой взгляд довольно часто обсуждаются:)
Нурлан
λ h = ($) (.) λ :t h h :: (b -> c) -> (a -> b) -> a -> c λ h (+3) (^3) 1 4
Нурлан
λ b = (.) ($) λ :t b b :: (a1 -> a -> b) -> a1 -> a -> b λ b (+3) (^3) 1 <interactive>:45:1: error: • Non type-variable argument in the constraint: Num (b -> b) (Use FlexibleContexts to permit this) • When checking the inferred type it :: forall b. (Num (b -> b), Num b) => b
Нурлан
вот бы еще вывод типа функции b понять
Влод
($) (.) = (.)
Влод
(.)($) имеет совершенно другую сигнатуру
Нурлан
зато не монаду теребим, как тут недавно проскакивало 😀
почему бы и не монады, хорошая конструкция
Ilya
вот бы еще вывод типа функции b понять
b = (.) ($) b f = (.) ($) f = ($) . f b f x = ($) (f x) = (f x $) b f x y = f x y
Нурлан
да, клево!
Нурлан
без явной аннотации типа тоже катит:)
Без явной нотации типа не катит, поскольку op становится шире ($), я о том, что op 1 определено, а ($) 1 неопределенно.
Dmitry
Я тут пост накропал про функциональные извращения с сишным препроцессором и про си. Тут, конечно, офтопик, но не офтопичнее обычного местного офтопика про поезда, руби и черногорию
Ilya
а можно линк?
Dmitry
надо сначала выяснить будет это спам или нет
Quet
да с чего вдруг спам
Алдар
template <size_t n> struct fac { const static auto value = n * fac<n - 1>::value; }; template <> struct fac<0> { const static auto value = 1; };
Алдар
чем не функциональное программирование с паттерн матчингом и рекурсией?
Dmitry
ладно, пока модераторы спят: http://letrectruth.ml/posts/cpp-snafu-conclusion.html
Alexander
@voidlizard а ты уже сам модератор :)
Dmitry
@qnikst да, но местных правил я как-то еще не читал
Alexander
Я не против оффтопа если только не ругань и не откровенный и продолжительный троллинг
Alexander
А их и нет
Dmitry
зацените кстати домен letrectruth.ml
Alexander
Если есть правила то есть к чему отсылаться и о чем спорить, правила невыгодны
Dmitry
что бы этого не было, надо в правила включать пункт о том, что модератор всегда прав, это же старая история
Alexander
Так что у нас как английская конституция , есть но неписаные
Serhii
Ребята, а нет в телеграме бота, который возвращает результат haskell-кода?
Dmitry
ой, а зачем?
Влод
я таких вообще не встречал (для любых языков). но в общем то можно было бы такое сделать., нужно оценить объём работы
Dmitry
https://ghc.io/
Anonymous
в IRC на фриноде есть такой бот. и в старой жаббер-конфе русскоязычной тоже был
Влод
смысл есть. например в irc был лямбдабот. и вот мы сейчас как бы копируем из ghci. а некоторые просто в голове компилят
Anonymous
боты скорее всего опенсорс
Влод
да его вроде на хакэдже видел
Dmitry
а в чем проблема копировать?
Влод
ну ты запускаешь репл ради одной строчки
Dmitry
что значит запускаю, я его и не закрываю никогда
Влод
или в моём случае - я его даже не запускаю, а просто кидаю строчку кода на удачу
Artem
Есть бот по многим языкам, включая Х
Dmitry
ну просто боту написать что-то сложнее a+b это же целое дело