
A64m
19.10.2018
13:39:26
и если обычно это значает, что один человек ничего не выучит, то в случае программирования это не так

Ilya
19.10.2018
13:41:50

Aleksey
19.10.2018
13:42:14
Вон, SICP ценят во многом за то, то там задач много :)

Google

Index
19.10.2018
13:43:20
Программисту хорошо, у него есть компилятор, который всему научит. Математику нужен преподаватель, который будет домашнюю работу проверять, а тут запустил и увидел, получилось или нет.

A64m
19.10.2018
13:43:44
а хаскельные книги и правда не нужны

Index
19.10.2018
13:43:45
Я противопоставляю преподавателя и компилятор
А не книги и компилятор
Книги это дополнительный справочный материал в обоих случаях.

A64m
19.10.2018
13:44:26
это обычно косноязычное пересказывание гхц-мануала и текста base, плюс кукбук про устаревшие библиотеки

Ilya
19.10.2018
13:45:17

Aleksey
19.10.2018
13:45:57

Alexander
19.10.2018
13:46:16

Ilya
19.10.2018
13:46:40

Anton
19.10.2018
13:46:47

A64m
19.10.2018
13:46:48
и когда я хаскель изучал, то учебник по нему (такая брошурка GITH) был именно про синтаксис в основном, мол вы, конечно знаете уже какой-то фя, вот в хаскеле для этого всего такой вот синтаксис

Google

Ilya
19.10.2018
13:49:32
Математики это всё же в сторону пруверов, а не вольфрама

A64m
19.10.2018
13:50:48
обычно слон в комнате "хаскель примерно так же похож на мл, как пролог похож на фортран, хотя выглядит как будто бы похож" полностью игнорируется

Sergey
19.10.2018
13:52:44
https://www.cis.upenn.edu/~bcpierce/papers/LambdaTA-ITP.pdf
к теме беседы

Ilya
19.10.2018
13:54:34

Anton
19.10.2018
13:54:38

Aleksey
19.10.2018
13:54:46

A64m
19.10.2018
13:55:16

Aleksey
19.10.2018
13:58:21
LYaH не предполагает налицие навыка программирования на ИП-языках. Поэтому необычность и не преподносит - читатель может не знать про обычное
Писать книгу с кучей отсылок "а вот тут не как у Java, а вот тут не как у C", имхо, странно

Ilya
19.10.2018
13:59:22
Обычно просто говорят, "забудьте, что знали ранее"

A64m
19.10.2018
13:59:40
я бы поспорил, что предполагает, хотя может сам автор так не бумает

kana
19.10.2018
13:59:40
да нет, часто используют этот трюк чтобы показать код на плюсах скажем, а потом однострочник на хаскеле

Aleksey
19.10.2018
13:59:51
LYaH пытается быть первой книгой по программированию

kana
19.10.2018
13:59:56
теоркат для программистов это использут по началу

Aleksey
19.10.2018
14:00:06

Google

kana
19.10.2018
14:00:41
да нет, вполне себе, людей сначала нужно завлечь, а такие вот вещи помогают

Ilya
19.10.2018
14:00:46

Aleksey
19.10.2018
14:01:34

kana
19.10.2018
14:02:05

Aleksey
19.10.2018
14:02:13
Завлекать квиксортом приснопамятным - зашквар

kana
19.10.2018
14:02:18
книги пишут не для особенных людей, а для масс

A
19.10.2018
14:02:30

kana
19.10.2018
14:03:18

Ilya
19.10.2018
14:04:26
Завлекать не зашквар, но это не нужно в учебнике
Завлекать можно в других местах

kana
19.10.2018
14:04:49
очень даже нужно, если это не учебник обязательной программы

Aleksey
19.10.2018
14:05:38
по моему, LYH как раз это и делает)
LYaH не завлекает квиксоротом. Оный используется в качестве примера рекурсивной функции. В середине книги уже. И уж никак не в виде "смотрите, на haskell квиксорт пишется в три строки"

kana
19.10.2018
14:05:53
книги для новичков потому и книги для новичков, что дают новичкам материал понятно и так, чтобы оне не потеряли интерес

Denis
19.10.2018
14:06:05

Ilya
19.10.2018
14:07:36
Москвин завлекает, кажется, фолдрами и прочими go. Холомьёв завлекает типами и классами

Neujaskre
19.10.2018
14:24:15
Хотя это и не лучшая книга по Хаскелю вообще.

A64m
19.10.2018
14:39:49
чет хаскелисты "квиксорта" застеснялись

Aleksey
19.10.2018
14:43:36

Google

A64m
19.10.2018
14:44:11
надо противопоставлять трисорту, конечно, он на си будет сильно страшнее

Alexander
19.10.2018
15:03:01
@astynax а круче даже антипримеры, т.е. задачи где что-то использовать не надо
оно обычно для понимания лучше, как и приведение контр примеров в математике

Aleksey
19.10.2018
15:04:33
Это полезно, согласен

Alexander
19.10.2018
15:06:00
но хз кто такое сделать адекватно может
lens task generator
генерирует структуру, значение и описание того что получить

A64m
19.10.2018
15:09:29
надо примеры использования автоматизированно извлекать из либ на хекедже, а не из ответов в чатиках
листаю материал по которому я хаскель учил в свое время, да, там есть на что посмотреть
как вам такое?
fib@(1:tfib) = 1 : 1 : [ a+b | (a,b) <- zip fib tfib ]

Index
19.10.2018
15:18:58
fib@(_:tfix) надо было.
Лишний матчинг.

A64m
19.10.2018
15:19:14
да

Maxim
19.10.2018
15:34:20
Так, народ. А поясните ещё пожалуйста за споры free monad vs final tagless
Это же вроде не эквивалентные вещи - на монадах можно делать эффекты, смотри пример с getLine / putLine. А как в FT что-то такое можно закодировать?

kana
19.10.2018
15:36:10
class Monad m => MonadF m where
f :: m ()
instance MonadF IO where
f = print "hello"
data F r = F r
interpret :: F a -> IO a
interpret (F next) = print "hello" >> pure next
runF :: Free F a -> IO a
runF = foldFreeM interpret

Maxim
19.10.2018
15:39:37
Так, падажжи
А если у меня в языке есть две операции - прочитать строку и записать строку. Я написал на этом языке программу "прочитать строку, добавить к ней !, записать то что получилось"
Как?
На фри понятно как

Index
19.10.2018
15:41:02
class Monad m => MonadF m where
printhello :: m ()
getline :: m String

Maxim
19.10.2018
15:41:43
Ну тут монад явно появляется...

kana
19.10.2018
15:41:59
class Monad m => MonadRW m where
read :: m String
write :: String -> m ()
program :: MonadRW m => m ()
program = do
x <- read
write (x ++ "!")

Google

Maxim
19.10.2018
15:41:59
Хотя я кажется понял, что бред какой-то спросил

Alexander
19.10.2018
15:43:06
они эквивалентны
и можно переводить одну форму в другую

Maxim
19.10.2018
15:43:33
Короче, когда мы пишем функтор для фм, у нас нет нигде монады
А тут (в мтл выше в чате) монада явно
Это меня и смутило

kana
19.10.2018
15:44:47
instance Functor f => Monad (Free f)

Alexander
19.10.2018
15:44:53
так монада выводится из наличия функтора забесплктро (free)
в общем-то свободные структуры вроде же по этому так и называются
что по одной строится другая
даёшь функтор получаешь монаду
просишь моноид, получаешь список

kana
19.10.2018
15:46:36
хм, я воспринимаю свободные структуры как свободные от отношений, то есть алгебра без отношений, только порождающие + отношения из определения алгебры

Maxim
19.10.2018
15:46:48
ладно, надо дочитать статью Олега до конца
там кажется обещались эффекты

Alexander
19.10.2018
15:48:00
я думаю ты ТК и прочее лучше меня знаешь

kana
19.10.2018
15:51:33
Нет-нет, тут я сомневаюсь, это предположение тоже интуитивное после ознакомления со свободными группамии

Iva
19.10.2018
18:07:02
Что в хачкеле выполняется раньше, подстановка имплиситов или же развёртка макросов?

Alexander
19.10.2018
18:10:51
что такое имплиситы в haskell?