Size: a a a

Clojure — русскоговорящее сообщество

2020 July 16

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
Он хоть 1/10 от кложавского может?
источник

Oℕ

Oleg ℕizhnik in Clojure — русскоговорящее сообщество
Tim Plotnikov
А покажите язык с алгебраическими эффектами?)
Есть техники более общие, чем контроль эффектов, например, модальности
https://granule-project.github.io/granule.html
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
В курсе про duck typing? Вот это про тебя как раз, ты собрал весь набор. И ещё несколько твоих товарищей, квазиумных.
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Я вроде ещё видел в каком-то майкрософтомском языке есть, что-то пытаются сделать в Ocaml)

А также очень похожая система есть в CL - http://jacek.zlydach.pl/blog/2019-07-24-algebraic-effects-you-can-touch-this.html
источник

Oℕ

Oleg ℕizhnik in Clojure — русскоговорящее сообщество
Vlad Lisovsky
Он хоть 1/10 от кложавского может?
Да, может примерно столько же, сколько кложуровский
источник

Oℕ

Oleg ℕizhnik in Clojure — русскоговорящее сообщество
Tim Plotnikov
Я вроде ещё видел в каком-то майкрософтомском языке есть, что-то пытаются сделать в Ocaml)

А также очень похожая система есть в CL - http://jacek.zlydach.pl/blog/2019-07-24-algebraic-effects-you-can-touch-this.html
Ага
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Я просто не понял вопроса типа «покажи алг еффекты в кложе», хотя их почти нигде нет 😄
Хотя может я просто не дочитал сообщения до конца)
источник

Oℕ

Oleg ℕizhnik in Clojure — русскоговорящее сообщество
Но, конечно, думаю до неисследовательских систем эффектов в языках лет 5-10 ещё
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Вообще идея конечно крутая, и даже не обязательно стат типизацию иметь. Главное first-class continuations как в Scheme и можно сделать эффекты и эффект хэндлеры
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Я бы не сказал что она «быстро» развивается, все любят ее не за это)
источник

Oℕ

Oleg ℕizhnik in Clojure — русскоговорящее сообщество
Tim Plotnikov
Вообще идея конечно крутая, и даже не обязательно стат типизацию иметь. Главное first-class continuations как в Scheme и можно сделать эффекты и эффект хэндлеры
Ну такие эффекты не очень полезны, такие сорта континюэйшонов в 80х использовали ещё. Без типов применений у них не очень много
источник

Oℕ

Oleg ℕizhnik in Clojure — русскоговорящее сообщество
Ну ладно, давайте скажем так "без систем инвазивной метаинформации" не очень полезны
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Oleg ℕizhnik
Ну такие эффекты не очень полезны, такие сорта континюэйшонов в 80х использовали ещё. Без типов применений у них не очень много
Почему же? Какое приемущество дадут типы в контектсте алг эффектов перед динамической типизацией?

Небольшая ремарка: мы должны помнить, что в кложе есть типы, ты не сложишь число и строку. Типы просто не проверяются во время компиляции
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Не, я понимаю, что компиляторные чеки, отлов ошибок ещё до запуска, валидация эффектная функция vs. чистая
источник

Oℕ

Oleg ℕizhnik in Clojure — русскоговорящее сообщество
Tim Plotnikov
Почему же? Какое приемущество дадут типы в контектсте алг эффектов перед динамической типизацией?

Небольшая ремарка: мы должны помнить, что в кложе есть типы, ты не сложишь число и строку. Типы просто не проверяются во время компиляции
Давайте не вдаваться в спор могут ли являться ли ошибки рантайма системой типов.
Классическая ветка теории типов, тянущаяся от Рассела понимает типы в другом смысле.
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
И это всё круто, но я бы не скажал что это *обязательно*
источник

Oℕ

Oleg ℕizhnik in Clojure — русскоговорящее сообщество
Tim Plotnikov
Почему же? Какое приемущество дадут типы в контектсте алг эффектов перед динамической типизацией?

Небольшая ремарка: мы должны помнить, что в кложе есть типы, ты не сложишь число и строку. Типы просто не проверяются во время компиляции
Основное преимущество - это как раз очень строгие сигнатуры и возможность реализовать программы в более ортогонализируемой форме.
источник

RK

Ruslan Khafizov in Clojure — русскоговорящее сообщество
Oleg ℕizhnik
Основное преимущество - это как раз очень строгие сигнатуры и возможность реализовать программы в более ортогонализируемой форме.
Как ортогонализация следует из типов?
источник

Oℕ

Oleg ℕizhnik in Clojure — русскоговорящее сообщество
Tim Plotnikov
И это всё круто, но я бы не скажал что это *обязательно*
Конечно, не обязательно. Просто я говорю именно в контексте "если вам интересны алгебраические эффекты, вам наверное интересна строгая связь сигнатур с термами", а не дополнительные фишки рантайма
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Oleg ℕizhnik
Конечно, не обязательно. Просто я говорю именно в контексте "если вам интересны алгебраические эффекты, вам наверное интересна строгая связь сигнатур с термами", а не дополнительные фишки рантайма
А, ну это кому как наверное)
Мне, например, из алг эффектов бы интересовали возможности анвиндить стек вызовов наверх с какими-нибудь дефолтными значениями или ещё что-нибудь такое, а не сигнатуры, которые получаются с эффектами)
источник