Alexander
А там еще на плюсах когда ФП делаешь, сегфолты заработать - раз плюнуть.
Aliester
умные программисты пишут на асемблере
Aliester
одним файлом
Aliester
сразу с манглингом
Алексей
На плюсах заработать сегфолты всегда раз плюнуть
Aliester
и в ногу выстрелить
Aliester
чинно, обьектом с темплейтом и смарт пойнтером
Aragaer
а я люблю писать тесты с мин-юнитом и потом прогонять их через валгринд
Alexander
Уверен, в чате плюсовиков так же говорят, когда речь про Haskell заходит
Alexander
О, пойду-ка я поиском поищу "Haskell" в таком чате
Alexander
Ну, там, в общем, языкосрачи ничем не отличаются. Но есть тенденция: всякие чуваки пишущие "искаверкана русска языка", в основном, против Haskell, но целая куча грамотных и рассудительных, которые даже его рекламируют.
Alexander
все логично, программисты на хаскеле привыкли использовать статическую проверку на наличие ошибок
Alexander
даже в орфографии
Anatolii
Aliester
динамический хаскель
A64m
как-то осторожно он признается что "динамическую" "типизацию" любит, зато делать строгий язык в 2010 годы не боится совсем, а что больший признак неадекватности это еще поспорить можно
Dmitry
Так. А теперь серьезный вопрос. Здесь есть уникумы, читавшие Кнута? Ну хотя бы первую из его эпохальных книг. (Признаюсь, я не уникум)
Я читал. Когда задачки с Project Euler решал. Почти полностью второй том (получисленные алгоритмы), ну и местами первый и третий. Ну, как-то это не помогло Haskell освоить :(
Anatolii
next Haskell?
parket
next Haskell?
Aга, will be strict 😂
Anatolii
это английский аналог нашей фразы "когда рак на горе свистнет"
Anatolii
Когда багу пофиксишь? - Когда выйдет новый строгий хаскель
Danila Matveev
@A64m_qb0 наверняка ты знаешь подскажи, пожалуйста, откуда взялся термин type class и есть ли его точное определение
Artem
next Haskell?
Собственно, в контексте Идрис это имеет вполне практический смысл
Евгений
Даже SPJ в каких-то докладах говорил next Haskell will be strict, ибо слишком уж она непредсказуемая, ленивость эта
Надеюсь кто-нибудь запилит ЯП с оптимальной редукцией и вы ещё вспомните ленивую редукцию со слезами былого счастья на глазах
Oleg
Видимо, корректная редукция с наименьшим количеством бета
Aliester
call-by-name го
Евгений
Anonymous
Может, упростить контроль над ленивостью? Например, при вызове ф обозначать, что пусть всё в ней лениво | строго.
Евгений
Зачем вам упрощать контроль за ленивостью? Может лучше писать абстракции, которые не протекают?
Viacheslav
Нормально делай нормально будет
Denis
не уверен что это самый первый пейпер, но это вадлеровская работа и эпоха +- совпадает
isnullxbh
Ребят, подскажите, пожалуйста, какой из терминов корректный (общеупотребительный): альфа-эквивалентность или бета-эквивалентность? Кузнецов в своих лекциях использует первый термин, Москвин - второй. Или я что-то не понял, и это разные вещи?
кана
альфа-эквивалентность: (\x. x) =_\alpha (\y.y) бета-эквивалентность: (\x.x) y =_\beta y (\x.t(x)) y =_\beta t(y)
Viacheslav
Отличное пояснение
isnullxbh
Т.е. альфа-эквивалентность - это что-то вроде простой замены переменной?
Danila Matveev
переименование
кана
...которые в лямбда-абстракции
isnullxbh
Спасибо!
Cheese
бета — это подстановка выражения в тело
A64m
@A64m_qb0 наверняка ты знаешь подскажи, пожалуйста, откуда взялся термин type class и есть ли его точное определение
тайпклассы так назывались в первой же статье где они описываются. https://people.csail.mit.edu/dnj/teaching/6898/papers/wadler88.pdf ну и это не какой-то там термин у которого может быть точное определение, это "фича", которая определяется правилами типизации и трансляцией в язык без этой фичи.
A64m
Даже SPJ в каких-то докладах говорил next Haskell will be strict, ибо слишком уж она непредсказуемая, ленивость эта
это же шутка. (правда, "пророчество" сбылось, есть же прагма language Strict которой никто не пользуется)
A64m
да особой не было, было несколько восторженных ожидателей, когда ее только обсуждать начали, а когда имплементировали, никто и не заметил
A64m
Нет, это не шутка. С ленивостью действительно есть проблемы.
допустим, но как это связано с тем, что "следующий хаскель будет строгим"?
Artem
Это связано с тем что Идрис сделали строгим
A64m
нет, не связано
A64m
(по словам его автора, по крайней мере)
Leonid 🦇
И вообще, строгости добавить проще чем ленивости
Oleg
Если не ошибаюсь, строгость обусловлена простотой написания бэкендов во всё подряд
Oleg
А часть функций, которые берёт на себя ленивость берёт тотальность с кодатой
Vitaly
Herbert Valerio Riedel говорит, что следующий за 2.2 cabal будет 3.0 и там по умолчанию уже будет nix-style local build (https://github.com/haskell/cabal/issues/5074#issuecomment-360978451), ссылается при этом на проект для GSoC. Как считаете, это реально?
Alexander
конечно реально
Alexander
в cabal style
Alexander
когда что-то работает, что-то нет, интерфейс для инопланетян
Artem
И вообще, строгости добавить проще чем ленивости
Как раз наоборот. Для строгости нужны новые примитивы (seq), а для создания отложенного вычисления просто завернуть в лямбда-функуию с unit-аргументом. Примерно так + немного сахара в Скале
Alexander
но если понимаешь, что там к чему - то все прекрасно
Alexander
получится как в идрисе "ленивость"
Artem
(по словам его автора, по крайней мере)
Я общался с автором и у меня другое впечатление сложилось
Alexander
покажите мне хоть один язык, в котором есть нормальная ленивость, а там уже и поговорим
Alexander
что проще, а что нет :)