
A64m
17.10.2018
09:09:07
было бы естественнее если бы обычный хаскельный лейаут был

Alexander
17.10.2018
09:09:40

kana
17.10.2018
09:10:18

Google

Alexander
17.10.2018
09:10:36
тут кстати смешались списки и структуры
я даже не знаю что обсуждаем

A64m
17.10.2018
09:10:43
через запятую только в схеме типа т.е.
foo, bar :: Int; baz :: String

kana
17.10.2018
09:11:18

A64m
17.10.2018
09:11:34
да

kana
17.10.2018
09:12:35
ну да, в принципе норм, но хз как это с GADT будет
а вот если выпилить фичу, что у конструктора свой рекорд может быть, все станет легче

A64m
17.10.2018
09:13:33
(но я и против нынешнего иснтаксиса ничего особо не имею)
лол, в джейнстритовском блоге нельзя получить ссылку на заголовок на странице
но не беда, в принципе, там первым номером то что надо
https://blog.janestreet.com/ocaml-4-03-everything-else/
твиговец опять в ghc-devs написал, что готовы успеть до заморозки дифф с линейными типами подготовить (перед заморозкой 8.6 тоже такое писали)
но спж что-то сомневается что успеют вмерджить

Google

A
17.10.2018
09:26:19
"the multicore GC" так и не впилили

Yuriy
17.10.2018
09:52:19
лень читать всю простыню, но в естественном языке запятая означает разделение и паузу, а в программировании — объединение в узел AST. когда она ведущая, легче считывается AST
а по AST — логическая структура программы

Index
17.10.2018
10:20:52
Взяли бы тогда другой символ
Так надоели эти стили, хоть иди структурный редактор пиши

Alexander
17.10.2018
10:23:33
или хороший stylish, который туда и обратно все переводит
и.к. редактировать пока проще плоский текст

Александр
17.10.2018
10:24:33
На лиспе писать надо, и все

Alexander
17.10.2018
10:28:11
или на тикле

A64m
17.10.2018
10:28:43
вот редкий пример синтаксиса, который действительно чувствителен к стилю форматирования, т.е. когда есть какая-то заметная разница в читаемости - это как раз лисп

Leonid
17.10.2018
10:29:32
а Эван написал для эльма единственный верный форматер?

Index
17.10.2018
10:30:43
Да

Alexander
17.10.2018
10:43:27
у крисдона был шанс сделать это тут

A64m
17.10.2018
10:53:33
шансов не было

Yuriy
17.10.2018
10:57:41

Dmitry
17.10.2018
10:58:24

Alexander
17.10.2018
11:45:45
вообще рекорды выше не практично
практично писать:
type Record = Any
а академично:
newtype Record (t::SomeCrazyStuffHere) = R Any

Pineapple
17.10.2018
12:00:58

Google

Alexander
17.10.2018
12:01:21
три диссертации есть?

Terminator
17.10.2018
13:11:57
@dimiiim будет жить. Поприветствуем!

dimiii
17.10.2018
13:15:20
Привет, только отлучился и уже терминируют.
Вопрос - есть какой-нибудь смысл в Continuation Comonad?

Denis
17.10.2018
13:18:41
кто-то пробовал сделать Mealy в Черче?

Aleksey
17.10.2018
13:21:16
А ещё лучше - на cirru
set a (add (number 1) (numer 2))
set a $ add (number 1) $ number 2
set a $ add
number 1
number 2
set a
add
number 1
number 2
эквивалентны. Отлично же!

A
17.10.2018
13:23:12
и зачем это вот?
просто как альтернатива?

Aleksey
17.10.2018
13:23:30
Лучшее из двух миров
Если ещё и редектор иметь, который позволяет фолдить-разфолдивать такое, то вообще отлично

Alexander
17.10.2018
13:24:11
или все эти корутины
или ранний выход
или парсер как в аттопарсеке

dimiii
17.10.2018
13:25:11
Может мне в @haskell_learn с этим вопросом?
Совершенно не понимаю ответы

A64m
17.10.2018
13:25:30
оттуда перенаправят сюда

kana
17.10.2018
13:25:38
ну раз уже задал, то можно тут

Google

Yuriy
17.10.2018
13:25:51
А ещё лучше - на cirru
(кажется, я задаю вопрос, за который хаскелиты ненавидят всех остальных, но) а кто-то на этом cirru что-то приближенное к реальности написал?

kana
17.10.2018
13:25:55
но я тоже не понимаю некоторые ответы

Alexander
17.10.2018
13:26:05
смотри есть структура data Foo a, можно сделать из нее ContT Foo, которая позволит построить Foo

Aleksey
17.10.2018
13:26:13
Есть набор парсеров для разных языков. Есть альтернативный ридер для кложуры

A64m
17.10.2018
13:26:36

Alexander
17.10.2018
13:26:38
например если Foo это элементы Pi-calculi, то ContT Foo будет программой построенной в ней

Yuriy
17.10.2018
13:26:38

dimiii
17.10.2018
13:27:02

Yuriy
17.10.2018
13:28:10

Aleksey
17.10.2018
13:28:40
Мне и s-exps не больно. Если в редакторе структурное радактирование нормально сделано.
Но лучше скобки не ставить, если можно
Поэтому мне и нравится Cirru.
При этом мне нравится в кложуре возможность объявлять мапы как
{:k 1
:v 2}
ни запятых лишних ни войн из-за оных!
Идеального синтаксиса нет, из реальных хаскельный - лидирующими запятыми(!) - самый приятный для меня.

Index
17.10.2018
13:44:01
Лидирующие запятые выглядят странно, конкретно этот символ не задуман для такого использования (в естественных языках)
В целом лидирующая пунктуация еще окей, но именно запятые выглядят странно.
Если бы еще это решало какую-то проблему, то ладно, но ведь не решает.

Alexander
17.10.2018
13:48:18
мне удобнее видеть так
даёт уровень выравнивания и легче парсится

Google

A64m
17.10.2018
13:49:16
я предпочитаю так не писать, но особой проблемы не вижу, если так написано

Alexander
17.10.2018
13:49:20
т.е. или запятых не должно быть вообще или впереди

Yuriy
17.10.2018
13:55:28

Aleksey
17.10.2018
13:56:21
можно. Но привыкаешь
Если не писать в строчку, то обычно всё ок

A64m
17.10.2018
14:28:42
это не очень здорово. в новых строках - нет разделителя, в одну строку - есть разделители - это норм, а так не очень

Maxim
17.10.2018
19:25:26
народ, есть вопросик. вот есть у меня GADT:
data S (v :: [Symbol]) where
S :: Some vs -> Foo ws -> S (Union vs ws)
где Union — это тайп фемели, делающее ++ для тайп левел списков
представим, что Some и Foo это лейблы, которые делают синглтон список со своим символом. я пишу
s = #some `S` #foo
и ghc мне ругается, что не может вывести тип. если напишу явно s :: S '["some", "foo"] — тоже ругается
эта задача вообще как-то решается? (задача — тащить тайп-левел список строк и объединять их при некоторых операциях. в идеале конечно не список, а множество)

Мерлин
17.10.2018
19:57:52
Добрый день
Объясните пожалуйста, в чём отличие newtype от data?
B зачем оно нужно?

IC
17.10.2018
19:59:02

Андрей
17.10.2018
19:59:32
наконец-то нормальные вопросы, а то все про контравариантные кофункторы

Leonid
17.10.2018
20:00:15

Андрей
17.10.2018
20:01:26
Затрудняюсь ответить )

Artem
17.10.2018
20:03:09

Alister
17.10.2018
20:05:49
Клаупаций

Alexander
17.10.2018
20:07:28

Yuriy
17.10.2018
20:07:35

Alexander
17.10.2018
20:07:39
data это создание новой структуры данных
лучше оригинал дайте, там глаза сломаешь от перевода

Yuriy
17.10.2018
20:09:11
https://speakerdeck.com/konn/the-great-power-of-newtypes

Alexander
17.10.2018
20:09:33