Dmitry
Вроде, в конце 70-ых? В Ada
Alexander
кстати, а есть реализации System F за пределами семейства ML?
Alexander
в актуальных языках, разумеется. Не обязательно статической
Oleg
Parametric polymorphism was first introduced to programming languages in ML in 1975_
Alexander
Лучше не надо я и так верю что он может
Зигохистоморфный
http://simonjf.com/2018/08/27/cmm-of-wasm.html
Oleg
Евгений
Ну, модуль не сущность первого порядка, если у тебя что-то параметризовано 'a, то не получится туда функтор запихнуть.
Мне кажется, что модули больше на омегу похожи
Pavel
@elemir90 @odomontois время от времени хочется спросить вас: «Откуда вы все эти понятия и термины взяли и как они в практическом применении вам помогают решать задачи» 😊
Евгений
Я просто игрался со стандарт ML'ем лет 12 назад. Никак не помогают, я даже не программистом работаю
Pavel
Евгений
Лучше в @haskell_blah, не люблю когда в личку пишут
A64m
Misha
а кто видел criterion, который делает вот так:
benchmarking STM IxSet big/select field 3
time 237.0 ms (199.7 ms .. 261.0 ms)
0.996 R² (0.994 R² .. 1.000 R²)
mean NaN s (NaN s .. NaN s)
std dev 0.0 s (0.0 s .. 0.0 s)
variance introduced by outliers: -9223372036854775808% (severely inflated)
stm-ix-benchmarks: Statistics.Quantile.weightedAvg: Sample is empty
Misha
это как понимать?
Dmitry
У меня такое бывало, когда комп время обновлял
Dmitry
Отматывал назад
Misha
хм
Misha
в моем случае это вполне себе воспроизводимый результат
кана
@A64m_qb0 ArgumentDo отклонили? Почему?
A64m
чего отклонили?
кана
тут вроде closed - https://ghc.haskell.org/trac/ghc/ticket/10843
(мб конечно closed как релазиовано)
на 8.4 все еще не работает
A64m
https://ghc.haskell.org/trac/ghc/ticket/10843#comment:46
A64m
есть в 8.6
Misha
какая-то унылая фича, экономия одного $ что ли?
A64m
да
Alexander
на самом же деле не одного $
Alexander
а просто меньше лиспа
Alexander
вместо
Alexander
lisp (is here)
(and there)
(and everywhere)
Alexander
без скобочек писать
Alexander
одним $ там не выправить
Alexander
если я правильно arguments do помню
Maxim
То есть ifM теперь можно чуть красивее писать?
(щас кто-нибудь скажет что он не нужен)
Алексей
Не нужен, кнонечно
Maxim
А почему?
Alexander
не нужен
Misha
Потому что есть when?
Dmitry
whenM
Алексей
predicate >>= \case
True → wheTrue
False → whenFalse
кана
ой нет, матчить по булу - последнее дело
Dmitry
А чего бы нет?
Maxim
whenM
Как будто в when / whenM можно запихать блок else
Ilya
матчить стандартные типы - последнее дело:)
Maxim
Меня вот все ещё почему-то подсознательно смущает guard, хотя я понимаю как он работает
Алексей
Ilya
Ilya
either, maybe, foldr, first/second
A64m
если я правильно arguments do помню
правильно
Prelude> foo a b c = c
Prelude> :{
Prelude| foo do 1
Prelude| do 2
Prelude| do 3
Prelude| :}
<interactive>:3:5: error:
Unexpected do block in function application:
do 1
You could write it with parentheses
Or perhaps you meant to enable BlockArguments?
Prelude> :set -XBlockArguments
Prelude> :{
Prelude| foo do 1
Prelude| do 2
Prelude| do 3
Prelude| :}
3
Alexander
на самом деле для catch bracket и подобных функций удобно может быть
Alexander
меня эти скобки бесили слегка
Alexander
и даже делал flip catch smallHandler $ do ...
Alexander
только ради того, чтобы удобно большой блок написать
Ilya
Ну case конечно вербознее
Dmitry
И линейнее
кана
@xgrommx не видел еще генерацию рекурсоров через генерики?
кана
Alexander
foo
do f 1
do f 2
do f 3
вроде же?
A64m
A64m
кана
хм, выглядит как будто роль do расширили
A64m
не только
A64m
к примеру такое сработает
> concatMap \case {Just x -> [x]; _ -> []} [Just 1, Nothing]
A64m
ну и такое
Prelude> :{
Prelude| concatMap \case
Prelude| Just x -> [x]
Prelude| Nothing -> []
Prelude| [Just 1, Nothing]
Prelude| :}
[1]
Maxim
do вроде всегда мог без монад работать. Если строка одна, то и бинда нет, значит монада не нужна
A64m
это-то да
Зигохистоморфный
Cheese
кана
Alexander
Чат, говорят, что вот этот код работает в 8.0.2 и не работает в 8.2.2 (функция dupChan ведет себя неверно):
https://github.com/crabmusket/haskell-simple-concurrency/blob/master/src/DuplicatingChannels.hs
Кто-нибудь в курсе?
Misha
кана
меня кстати давно мучает мысль, что фраза "через рекурсор/катаморфизм можно выразить любую функцию" не верна
кана
типа в общем случае это будет скорее f . cata g вместо cata g