Start a New Thread
@8a0ed56a28c1446cbf8e8abe5cffb711
Anonymous
2017-07-26 01:28:37
Решил разобраться, что такое (algebraic) effects.
Основная идея состоит в том, что любое impure поведение может быть описано эффектом - набором примитивных impure операций, семантика которых задается обработчиками эффектов. Например, IO командной строки может быть описано двумя операциями: readline - чтение пользовательского ввода и printline - вывод строки в консоль. Для мутабельных данных это операции get и set. Для исключений - raise.
Используя синтаксис языка
Основная идея состоит в том, что любое impure поведение может быть описано эффектом - набором примитивных impure операций, семантика которых задается обработчиками эффектов. Например, IO командной строки может быть описано двумя операциями: readline - чтение пользовательского ввода и printline - вывод строки в консоль. Для мутабельных данных это операции get и set. Для исключений - raise.
Используя синтаксис языка
12 replies omitted.
Click here
to view the first page.
@40997e0db1fc46068d57498e7d1b87c7
Anonymous
2017-07-28 02:35:03
Чтобы обработать финальный результат (когда эффекта на самом деле не произошло в результате вычисления) используется return. Например,
выражение
имеет тип exception int несмотря на то, что в результате его вычисления exception никогда не произодет и поэтому
выражение
if (False) then raise("oops") else 111
имеет тип exception int несмотря на то, что в результате его вычисления exception никогда не произодет и поэтому
(handler{
raise(s) -> 666;
return x -> x+265
})(fun() { if (False) then raise("oops") else 111 })
вернет 376.
@117bdb5906164eca9e52ec710de90d68
Anonymous
2017-07-28 02:35:29
Еще один пример. Т.к. <> это тоже формально (пустой) эффект, то для него можно создать обработчик, но т.к. операций у <> нету и всегда есть финальный результат, то он должен содержать return. Например, handler{ return x -> x }.
@93992fed144444559c0d8536a7836fa3
Anonymous
2017-07-28 02:37:28
@3287b@3287bc6bc809403a8e084f6a2604252f "команд" в смысле "операций".
@4818c24f1c0a48c3bff5df19713a0005
Anonymous
2017-01-16 23:42:16
Зосима Любомирович, сводный брат Гобезара Жидимировича, сводного брата Меркурия Авксентьевича, сводного брата Дементия Жирославовича, друга Мартына Ратиборовича, любовника Федосьи Никоновны, сестры Гаврилы Ярославовича, троюродного брата Анны Ярополковны, подруги Рачислава Изяславовича, сына Антонины Адашовны, матери Антониды Судиславовны, подруги Лукерьи Захариевны, любовницы Недаша Пантелеймоновича, двоюродного брата Амура Гобезаровича, отца покойной Пелагеи Глебовны, матери Пелагеи Варлаамовны,
8 replies omitted.
Click here
to view the first page.
@bcef8a7ad7904125859d20d2dda609d1
Anonymous
2017-02-06 17:41:35
Занавеска вытрихуева
@7b917fc117f5490293a635634bf0af78
Anonymous
2017-02-06 17:42:27
/condom
@b65d145aa69b442ba6ab72d1c3e31ff7
Anonymous
2017-02-07 12:28:44
Test
@27d8fc727d1f4348aba9436bc7a61a05
Anonymous
2017-01-18 20:54:35
Let's continue development of this wonderful browser!
@696d3c6bbd3242b8a803792376300600
Anonymous
2017-01-18 22:42:36
"the development"
@c42d8a86ecde430aa5c260cee2b0c010
Anonymous
2016-08-20 21:07:09
test
@a653c2e784a64c879cc7771b9ca9a86a
Anonymous
2016-08-20 21:07:20
Ну, заебись.
@33932a9ee21f41e39b674ecfff8ed6ea
Anonymous
2016-08-20 21:17:06
blah-blah-bla
@92facfa103d241f98ea114faca2346e1
Anonymous
2016-08-21 06:30:36
lRv3zGx.webm (2511kb)
@d0228594f5114e58aca2468bd1cedfe6
Anonymous
2016-08-20 14:11:31
wpXs2sT.png
1 replies omitted.
Click here
to view the first page.
@9b1a90c0cd5845788cafe44e21faaf8b
Anonymous
2016-08-20 17:56:53
aIcMdRe.png
@2ef7c6b100e34f2aa63ab63b7e70cec1
Anonymous
2016-08-20 17:57:56
Xc9aEEu.webm (671kb)
@a702050716ad4aed856e0de3ea4c54e2
Anonymous
2016-08-20 18:05:31
dLxNe2c.webm (3249kb)