@haskellru

Страница 439 из 1551
Alexander
27.09.2017
11:26:38
и StM IO () ~ ()

Anatolii
27.09.2017
11:28:29
ошибки типов в рантайме, все как у взрослых
промышленный язык получился, и быстро разработка будет идти

Дмитрий
27.09.2017
11:28:38
Придётся всё на MLTT переписывать

Anatolii
27.09.2017
11:29:27
@qnikst а я правильно понимаю что UnliftIO сномановское решает туже проблему что и MonadBaseControl ?

Google
Alexander
27.09.2017
11:29:40
без понятия

это moand-control без автовывода и только над IO ?

Anatolii
27.09.2017
11:43:09
я насчет первого не очень понял

Alexander
27.09.2017
11:50:02
хотя тут ошибка по делу

правда не понимаю почему оно работало до этого

@cblp_su помнишь на на monad-control ругался

я нашёл у себя проблему похоже

правда я теперь не понимаю, почему оно раньше работало

Alexander
27.09.2017
11:55:38
я ещё минимальный case говорил что покажу

у меня withAsync не работало, когда поидее конексты все определяются

Yuriy
27.09.2017
11:56:02
а, это

ты ругался, что сообщение об ошибке не соответствует реальной ошибке

Google
Alexander
27.09.2017
11:58:42
да

это основной point

он остается

Pig
27.09.2017
12:13:49
Alexander
27.09.2017
12:16:06
ура

? animufag ?
27.09.2017
12:16:12
ассемблер — абсолютно слабый
Ну он хотя бы не приводит всё к строке

Alexander
27.09.2017
12:17:44
threaded haskell работает в nix в linux subsystem в windows

Pig
27.09.2017
12:17:55
Но он не знает ничего кроме... э... слов?

(@qnikst про аутиную типизацию ты удалил?)

Alexander
27.09.2017
12:18:47
ytn

нет конечно

я даже не читаю чо мы там про типизации пишите

ну и это бы не трогал точно

Andrei
27.09.2017
12:19:36
Anatoly
27.09.2017
12:35:36
сорри за вопрос новичка: почему haskell не диагностирует незавершаемые выражения? например, x = x + 1 x -- overflow ?

Vasiliy
27.09.2017
12:37:06
потому что в общем случае это невозможно

Mikhail
27.09.2017
12:38:05
Потому что в общем случае эта задача неразрешима, но есть liquid haskell, который умеет что-то похожее.

Anatoly
27.09.2017
12:38:51
спасибо!

kana
27.09.2017
12:51:08
Траверсалы выглядят как функторы для линз, только ограниченее.

Alexander
27.09.2017
12:51:35
@anatolijs например x = 1:x

Google
Alexander
27.09.2017
12:52:27
это незавершаемая или завершаемая операция?

Anatoly
27.09.2017
12:54:12
это конструирование бесконечного списка

если она будет вызвана, то не завершится

Aleksey
27.09.2017
12:56:32
в хаскеле - завершится

Alexander
27.09.2017
12:56:37
а take 10 x?

Aleksey
27.09.2017
12:56:37
ибо лень

Anatoly
27.09.2017
12:57:39
а take 10 x?
да, я понял

Aleksey
27.09.2017
12:58:08
length [1..] тоже не завершится :)

Anatoly
27.09.2017
12:58:16
не смотря на бесконечное выполнение в некоторых контекстах, в данном случае все будет в порядке

Alexander
27.09.2017
12:58:39
не знаю, что такое бесконечное выполнение

то, что было бы бесконечным выполнением если нету шаринга или лени?

Anatoly
27.09.2017
13:02:07
я пока не могу понять, как он делает так, что take 10 x завершается

Yuriy
27.09.2017
13:03:18
Aleksey
27.09.2017
13:03:37
я пока не могу понять, как он делает так, что take 10 x завершается
take идет по ленивому списку, который создаёт элементы по требованию. Как только take говорит "хватит", список генериться перестает

Yuriy
27.09.2017
13:03:58
я пока не могу понять, как он делает так, что take 10 x завершается
потому что нет причин ему работать бесконечно

Anatoly
27.09.2017
13:04:12
круто, спасибо!

Alexander
27.09.2017
13:04:31
есть ещё более интересный вариант: any [ a^n + b^n == c^n | a <- [1..], b <- [1..], c<-[1..], n<-[1..]]

Aleksey
27.09.2017
13:04:34
Хаскель всё вычисляет только тогда, когда это действительно нужно

Alexander
27.09.2017
13:04:38
это завершается или нет?

Google
Alexander
27.09.2017
13:04:55
только transpose для аргументов сделать, чтобы более разумно по ним бегал

вообще есть такая проблема останова

и мы или выкинем кучу программ для которых доказыать не умеем или возьмем не тьюринг полный язык, который не позволит получить незавершаемость

Pig
27.09.2017
13:06:14
что есть структурная?
кажется я только что придумал новый термин. но вообще это как записи в млях работают, даже статья в вики есть https://en.wikipedia.org/wiki/Structural_type_system

Anatoly
27.09.2017
13:26:47
причем, haskell не допускает левую рекурсию при определении бесконечных последовательностей, что понятно y = y : 1 — не скомпилируется

Denis
27.09.2017
13:27:22
А как ты пытаешься сделать 1 хвостом?

Pig
27.09.2017
13:27:27
+

Alexander
27.09.2017
13:27:28
нет

Denis
27.09.2017
13:27:32
Так оператор просто не работает

Alexander
27.09.2017
13:27:33
тут типы тупо не сходятся

let y = y++[1]

пожалуйста

Anatoly
27.09.2017
13:27:53
точно, спасибо!

Ilya
27.09.2017
13:28:03
это завершается или нет?
Конечно:) При таком-то диапазоне на n

Pig
27.09.2017
13:28:14
Правда тут уже take работать не будет afaik

Denis
27.09.2017
13:28:19
Конкатенация слишком прожорливая штука

Alexander
27.09.2017
13:29:02
хорошая шутка

Aleksey
27.09.2017
13:30:30
Конкатенация слишком прожорливая штука
лень же - дёшево конкатенировать, просто будет +1 санк :)

Denis
27.09.2017
13:31:46
Ну как бы надо полностью пройти 1 и потом хвостом подсоединить второй

Alexander
27.09.2017
13:32:08
вы же не про пример выше?

Google
Aleksey
27.09.2017
13:32:24
Denis
27.09.2017
13:32:47
А что если это два бесконечных списка?

Aleksey
27.09.2017
13:33:49
Ты не поверишь: λ> take 10 $ [1..] ++ [1..] [1,2,3,4,5,6,7,8,9,10]

конкатенация - тоже ленивая, начинает отдавать новый список поэлементно

Hot
27.09.2017
13:35:22
Ты не поверишь: λ> take 10 $ [1..] ++ [1..] [1,2,3,4,5,6,7,8,9,10]
Слушайте, а где это приглашенька такая у интерпретатора? А то в ghci по дефолту вроде как просто написано "Prelude>"

Aleksey
27.09.2017
13:35:38
в .ghci

Hot
27.09.2017
13:35:53
Это конфиг всмысле?

Aleksey
27.09.2017
13:35:58
:set prompt "\ESC[32mλ> \ESC[m"

можно прямо в репле попробовать

Hot
27.09.2017
13:36:59
Ага, работает.

Спс.

Denis
27.09.2017
13:37:28
Да, но не будет видно что за модули ты уже подключил

Aleksey
27.09.2017
13:37:45
это можно узнать и по-другому

:show modules

Anatoly
27.09.2017
13:41:22
Ты не поверишь: λ> take 10 $ [1..] ++ [1..] [1,2,3,4,5,6,7,8,9,10]
но в данном случае до ++ [1..] просто никогда не дойдет

Aleksey
27.09.2017
13:41:44
Вопрос был про завершение и про дороговизну конкатенации :)

Так что в хаскеле конкатенация - сравнительно дешевая

kana
27.09.2017
13:47:22
Чет у меня получился какой-то сложный toListOf toListOf :: Optic (->) (K (Endo [a])) s s a a -> (s -> [a]) toListOf lens = flip appEndo [] . getK . lens (K . Endo . (<>) . (:[]))

Страница 439 из 1551