Size: a a a

2020 August 28

AT

Anton Trunov in fprog_spb
χоρоший ☽☽☽ λисuчко
Ну, моему внутренними математику, в таком случае, это не соответствует
Я не считаю, что математика должна соответствовать реальности, так что, изменение аксиом – принципиальная смена изучаемого объекта.
+ вот теперь это математика (в отличии от теории типов ;))
источник

AV

Alexander Vershilov in fprog_spb
Denis Gabidullin
Норм 👍
Осталось всего ничего, написать бота)
Тут есть какой-то лиспобот
источник

АГ

Александр Гранин... in fprog_spb
"Это аксиома" - это аксиома.
источник
2020 August 29

χλ

χоρоший ☽☽☽ λисuчко... in fprog_spb
Александр Гранин
"Это аксиома" - это аксиома.
Type : Type
источник

AT

Anton Trunov in fprog_spb
Зачем же заведомую неконсистентность вводить?)
источник

χλ

χоρоший ☽☽☽ λисuчко... in fprog_spb
Anton Trunov
Зачем же заведомую неконсистентность вводить?)
А у Гранина есть самореферентное утверждение, пусть и у меня будет
источник

AT

Anton Trunov in fprog_spb
χоρоший ☽☽☽ λисuчко
А у Гранина есть самореферентное утверждение, пусть и у меня будет
Самореферентность — это ещё не конец света, но аккуратным нужно быть, конечно же
источник

L

Liscript-bot in fprog_spb
Anton: ошибка преобразования в число: String: вот
источник

L

Liscript-bot in fprog_spb
Alexander: ошибка преобразования в число: String: Формализовывать
источник

АГ

Александр Гранин... in fprog_spb
Mikhail Kuzmin
А можно не абстрактную теорию обсуждать, а практику?
Я хочу в clojure/script сделать что-то вроде интерпретатора эффектов.
Т.е. разделить логику от интерпретации эффектов.
Если кому haskell ближе, то это free monad.
Если кому ближе js, то это генераторы.



У меня есть вопросы и рассуждения, они вот тут.
https://gist.github.com/darkleaf/f0cbfe38eaad82cb44758aef1228287f

Собственно там первая ссылка на уже существующую мою библиотеку
и там есть rationale https://github.com/darkleaf/effect/blob/doc-2/README.md#rationale
Я не понимаю кложный код, но судя по всему, тебе может быть интересна моя недавняя разработка - async/await на основе Free monads. У меня есь PoC, который я делал для доклада на LambdaConf.

https://github.com/graninas/zio-free

(И слайды доклада, где все более-менее рассказывается:

https://docs.google.com/presentation/d/1KbKkokKY4-ndGoYC5Z_3XGbbzhrQRo_WReOhjaAHvo4/edit?usp=drivesdk)

У меня было два варианта дизайна, при одном из них синтаксиса async/await не требовалось, и скрипты были одинаковыми для синхронного и асинхронного выполнения. Я не стал проверять дальше деклараций, и не уверех, что это бы так заработало. Я пошел по дороге второго дизайна, с async/await. Здесь у меня не получилось сделать, чтобы синхронность скрипта зависела только от того, в каком окружении он запущен (в какой монаде), поэтому синхронные и асинхронные скрипты отличаются. Но всегда можно (и я это делал) запустить асинхронный скрипт на синхронное выполнение.

При Free monad подходе, учитывая природу этой монады (последовательное связывание операций), без специальной переменной Async между операциями будет зависимость по данным, и потому следующую операцию нельзя выполнить, пока не получен результат предыдущей. Async позволяет эту зависимость развязать и отложить получение результата. Конечно, там внутри лежит конкурентно мутабельная переменная, и иногда происходит перекладывание из одной такой перемнной в другую.
источник

АГ

Александр Гранин... in fprog_spb
Там у тебя был консерн про try, но я его не слишком понял. В моем PoC это есть
источник

АГ

Александр Гранин... in fprog_spb
(Есть также хорошее понимание, как делать DI и тестирование фри монадического кода)
источник

Y

Yuuri in fprog_spb
источник

АГ

Александр Гранин... in fprog_spb
Круто!!

(А при чем тут я?)
источник

AV

Alexander Vershilov in fprog_spb
Ты вроде делал штуки в факторио
источник

АГ

Александр Гранин... in fprog_spb
Alexander Vershilov
Ты вроде делал штуки в факторио
Да, я делал процессор и язык высокого уровня (ну вроде того)
источник

АГ

Александр Гранин... in fprog_spb
Думаю, что из всех подобных поделок, моя была самая простая. Люди творят вообще крышесносные вещи
источник

K

Kir in fprog_spb
Александр Гранин
Я не понимаю кложный код, но судя по всему, тебе может быть интересна моя недавняя разработка - async/await на основе Free monads. У меня есь PoC, который я делал для доклада на LambdaConf.

https://github.com/graninas/zio-free

(И слайды доклада, где все более-менее рассказывается:

https://docs.google.com/presentation/d/1KbKkokKY4-ndGoYC5Z_3XGbbzhrQRo_WReOhjaAHvo4/edit?usp=drivesdk)

У меня было два варианта дизайна, при одном из них синтаксиса async/await не требовалось, и скрипты были одинаковыми для синхронного и асинхронного выполнения. Я не стал проверять дальше деклараций, и не уверех, что это бы так заработало. Я пошел по дороге второго дизайна, с async/await. Здесь у меня не получилось сделать, чтобы синхронность скрипта зависела только от того, в каком окружении он запущен (в какой монаде), поэтому синхронные и асинхронные скрипты отличаются. Но всегда можно (и я это делал) запустить асинхронный скрипт на синхронное выполнение.

При Free monad подходе, учитывая природу этой монады (последовательное связывание операций), без специальной переменной Async между операциями будет зависимость по данным, и потому следующую операцию нельзя выполнить, пока не получен результат предыдущей. Async позволяет эту зависимость развязать и отложить получение результата. Конечно, там внутри лежит конкурентно мутабельная переменная, и иногда происходит перекладывание из одной такой перемнной в другую.
Вопрос. Зачем делать CPS вручную (next в PutStrLn :: String -> (() -> next) -> ZIOF next), если можно взять, нарпимер, Codensity?
источник

АГ

Александр Гранин... in fprog_spb
Kir
Вопрос. Зачем делать CPS вручную (next в PutStrLn :: String -> (() -> next) -> ZIOF next), если можно взять, нарпимер, Codensity?
1) для showcase
2) взять можно, но я не умею
источник

АГ

Александр Гранин... in fprog_spb
3) в реальном фреймворке я запользую Church Free
источник