
Daniel
27.03.2018
08:21:13
переименование

kana
27.03.2018
08:21:16
...которые в лямбда-абстракции

isnullxbh
27.03.2018
08:21:32
Спасибо!

Yuriy
27.03.2018
08:37:55

Google

Yuriy
27.03.2018
08:38:35
бета — это подстановка выражения в тело

A64m
27.03.2018
08:45:15

Daniel
27.03.2018
08:47:09

Leonid
27.03.2018
08:47:25

Artem
27.03.2018
08:48:02

A64m
27.03.2018
08:48:18
да особой не было, было несколько восторженных ожидателей, когда ее только обсуждать начали, а когда имплементировали, никто и не заметил

Dmitry
27.03.2018
08:51:27

Artem
27.03.2018
08:51:27
Это связано с тем что Идрис сделали строгим

A64m
27.03.2018
08:51:40
нет, не связано
(по словам его автора, по крайней мере)

Google

Leonid
27.03.2018
08:52:32
И вообще, строгости добавить проще чем ленивости

Oleg
27.03.2018
08:53:06
Если не ошибаюсь, строгость обусловлена простотой написания бэкендов во всё подряд
А часть функций, которые берёт на себя ленивость берёт тотальность с кодатой

Vitaly
27.03.2018
08:56:13
Herbert Valerio Riedel говорит, что следующий за 2.2 cabal будет 3.0 и там по умолчанию уже будет nix-style local build (https://github.com/haskell/cabal/issues/5074#issuecomment-360978451), ссылается при этом на проект для GSoC. Как считаете, это реально?

Alexander
27.03.2018
08:56:54
конечно реально
в cabal style
когда что-то работает, что-то нет, интерфейс для инопланетян

Artem
27.03.2018
08:57:16

Alexander
27.03.2018
08:57:18
но если понимаешь, что там к чему - то все прекрасно

Leonid
27.03.2018
08:57:30

Alexander
27.03.2018
08:57:54
получится как в идрисе "ленивость"

Artem
27.03.2018
08:58:02

Leonid
27.03.2018
08:58:11

Artem
27.03.2018
08:58:14

Alexander
27.03.2018
08:58:16
покажите мне хоть один язык, в котором есть нормальная ленивость, а там уже и поговорим
что проще, а что нет :)

Leonid
27.03.2018
08:58:32

Pineapple
27.03.2018
08:58:44

A64m
27.03.2018
08:59:05
Это связано с тем что Идрис сделали строгим
вот причина, которую называет сам автор
> The original reason is not even anything to do with practical choice. It was just the way I wanted to do it at the time, having already implemented a lazy VM for an earlier project.
https://www.reddit.com/r/haskell/comments/36s0ii/how_do_we_all_feel_about_laziness/crgwc6f/

Google

Leonid
27.03.2018
08:59:33
Покажите мне ЯП где я могу как в хаскеле понаписать любой ерунды в where и не боятся что вычеслю слишком много

Alexander
27.03.2018
08:59:36
вот reasoning для всяких исключений, тотальности, линейных типов - он проще со строгостью
но если вы выберите строгий по умолчанию язык, то о прямой ленивости можно забыть
максимум что будет всякие итераторы стримы и т.п.
что конечно хорошо, но немножко меньше

Artem
27.03.2018
09:01:07

Alexander
27.03.2018
09:01:23
они же не неиспользуемые

Artem
27.03.2018
09:01:27

A64m
27.03.2018
09:01:30

Leonid
27.03.2018
09:01:40

Alexander
27.03.2018
09:02:04
вот с непредсказуемыми я не знаю

Artem
27.03.2018
09:02:08

Alexander
27.03.2018
09:02:10
в общем-то они считаются
@ulysses4ever все локальные переменные, которые используется в коде, но не вычисляются во всех ветках

Artem
27.03.2018
09:02:45
Никто не спорит, что первоклассная ленивость удобней, чем костыли, но костыли практичней

A64m
27.03.2018
09:02:46

Leonid
27.03.2018
09:02:47

Alexander
27.03.2018
09:02:50
но я например не осилю посчитть

Imants
27.03.2018
09:03:03

Leonid
27.03.2018
09:03:31

Google

Alexander
27.03.2018
09:03:35
впрочем в строгом языке тоже не факт, что всегда осилю

A64m
27.03.2018
09:03:51

Leonid
27.03.2018
09:04:11
Ленивость не практична. хаскель не практичен.

Artem
27.03.2018
09:04:45

A64m
27.03.2018
09:05:01

Artem
27.03.2018
09:05:12
Если вас (как меня например) не сильно волнует производительность, то, конечно, ленивость ок и очень удобна

Leonid
27.03.2018
09:05:17
Что мы тут вообще делаем все? У нас терапевтическая встреча клуба людей с Стокгольским синдромом?. Какой-то Фрейдистский фалос в голове мешает нам писать на практичных ЯП?

Alexander
27.03.2018
09:05:40
ой...
ну зачем так-то
: (

Alister
27.03.2018
09:05:48
нас раскрыли
пшшш

Leonid
27.03.2018
09:05:52

Alister
27.03.2018
09:06:01
*кидает дымовую шашку и и исчезаезт*

Pineapple
27.03.2018
09:06:25

Alexander
27.03.2018
09:06:48
ну черт знает, я в haskell непредсказуемые тормоза и из-за ленивости и из-за строгости видел

A64m
27.03.2018
09:06:55

Andrew
27.03.2018
09:07:04
Пора выходить из чата?

Alexander
27.03.2018
09:07:06
и в идрисе у меня была куча всего O(N^2) вместо O(N) т.к. он строгий
а переписывать и сильно усложнять код, чтобы он был O(N) не хотелось

Google

Alexander
27.03.2018
09:08:19
но то, что имея тип структуры нельзя сказать сколько она занимает в ленивом языке - может быть проблемой

A64m
27.03.2018
09:08:48
ФП в ленивом языке точно практичнее, чем в строгом
Правда практичность ФП довольно сомнительна пока

Imants
27.03.2018
09:08:50
Есть уже, ! и force
Разве ! устрожает всю цепочку? Думал, только непосредственно вызываемую ф (первую в цепочке)..

Alexander
27.03.2018
09:09:39
! вычисляет то, перед чем оно стоит до WHNF

Artem
27.03.2018
09:09:46

Alexander
27.03.2018
09:12:01
изначальный и единственный агрумент за строгость: програмисту кажется, что он лучше её понимает
причем понимает, т.к. учился на строгих яп

A64m
27.03.2018
09:12:42
ну, не только кажется, ведь он действительно учился на них

Alexander
27.03.2018
09:12:52
хотя не, изначальный, т.к. это проще написать

Alister
27.03.2018
09:12:55
я вот сейчас одному школьнику помогаю
он входит в программирование через хаскель
и лисп
скинул ему курсов и книжек, вроде учится

Alexander
27.03.2018
09:14:12
а нормальных книжек не то, чтобы много

A64m
27.03.2018
09:14:22
правда это не единственный и даже не главный аргумент
решает будет язык ленивый или строгий фактически его имплементатор, потому главный аргумент за строгость:
ее проще имплементировать

Alexander
27.03.2018
09:15:03
единственное когда я увидел проблему с ленивостью, это когда пытались определить семантику и понять что с linear-types делать
ленивость там 100500 радостей приносит, которые в строгом языке понятнее как решать

Dmitry
27.03.2018
09:18:35

Alexander
27.03.2018
09:19:08
force вычисляет агрумент до NF всегда проходя его
evaluate . force все вычисление
но с другой стороны force даже по вычисленному пробежится, поэтому хорошо бы его в newtype Once запихивать

Dmitry
27.03.2018
09:20:32
"Его" -- вычисленное?