Обновить
4
0

Haskell разработчик

Отправить сообщение

Нельзя. Для таких целей нужно дизайнить язык с нуля. И начинать дизайн этого языка нужно с системны типов, в которойи 100% должны быть а) линейные типы б) констрейнты

Ваша статья – великолепный пример сравнения ежа с ужом методом натягивания совы на глобус

Очередная победа капитализма над здравым смыслом

В докладе AI 2027 эксперты пишут, что к концу 2027 года ИИ будет умнее любого человека.

Опять двадцать пять. Из раза в раз мы видим что развитие любой технологии идет по S-образной траектории и из раза в раз мы видим кучу умников, которые завидев экспонентой в середине этой кривой воображают, что сейчас то оно точно улетит в бесконечность

Потому что слишком не похожи на алгол были

Для вами описанной задачи (физической симуляции) вообще ECS лучше всего подходит, который от ООП максимально далек

Очень странно, что в статье не упомянули ни floorp, ни zen, которые действительно что-то новое привносят, а не только возвращают вам 2007

Ну так хаскель 90-го года и хаскель совеременный — это очень разные языки.

школьная реализация динамики вручную

Ну во первых, любая динамика может быть встроена в статику. Во вторых линзы это общий фреймворк для работы с любого вида данными. Тут же только аксессоры и общее представление XML документа.


без каких-либо проверок

Как это без проверок? Там в сигнатурах вполне ясно записано, каким образом аксессор работает и что гарантирует: Lens, Traversal, Prism.


и оптимизаций

При этом оно всё ещё намного оптимальнее, чем в любом монотипизированном языке.


Поставленную задачу (найти по селектору) не решает

По какому селектору вы с этим инструментарием что-то не сможете найти, не поделитесь?


даже комментарии ни та ни другая блин не обрабатывают.

В XML обрабатывает, а в валидном JSON комментариев быть не может.

К счастью у меня под рукой как раз оказалось Generic решение такой задачи для JSON'а: https://gist.github.com/Nexmean/2a85607888c6af2bfa0ec9116847ba71


Примерно аналогичным образом это можно сделать для XML.

Так ведь задача состоит именно в том, чтобы этого не делать.

Необходимая валидация просто делается заранее и всё:


let accessor = el "bar" . el "baz" . text
in if not $ null $ xml ^.. accessor
  then xml & set accessor "1"
  else error "invalid xml"
xml & set (el "bar" . el "baz" . text) "1"

В рантайме ничего не падает. Фактически в таком случае ничего не происходит.

Но ведь тут как раз задача "сделать как на динамике в языке с типами". Вот как раз инструменты для того, чтобы в несколько строк пробежаться по дереву и поменять/прочитать там то, что необходимо.

Легче лёгкого:



При чём я уверен, что с линзами в хаскеле это будет сделать намного проще, чем в питоне без них.

А вот rank-2 уже нельзя. В том же хаскеле очень трудно найти библиотеку, которая могла бы без них обойтись. Ту же Cont монаду без этого никак не построить.

Может стоит тогда быть хотя-бы оптимальным с опциональной ленью, а не как идрис?

1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Владивосток, Приморский край, Россия
Дата рождения
Зарегистрирован
Активность