[Ocaml] STM не на Haskell :)
От: Курилка Россия http://kirya.narod.ru/
Дата: 06.03.07 10:58
Оценка: 17 (2)
Собственно наткнулся на сабж. Software Transactional Memory вещь довольно популярная в последнее время, но не помню чтобы речь шла о реализации её не на хаскеле.
Re: [Ocaml] STM не на Haskell :)
От: palm mute  
Дата: 06.03.07 11:23
Оценка: 1 (1)
Здравствуйте, Курилка, Вы писали:

К>Собственно наткнулся на сабж. Software Transactional Memory вещь довольно популярная в последнее время, но не помню чтобы речь шла о реализации её не на хаскеле.

Самое смешное, что эта реализация использует монады. На первый взгляд, это порт оригинальной реализации STM на хаскеле:
http://www.pps.jussieu.fr/~li/software/stmlib/doc/html/Stm.html

val return : 'a -> 'a stm

Primitive to wrap a plain of type 'a value to a 'a stm, which when being executed, will produces the orignal value.

val bind : 'a stm -> ('a -> 'b stm) -> 'b stm

bind t f is a transaction, when executed, first behavior as transaction t, then feed the reture value to f to get the consecutive transaction to execute next.

val (>>=) : 'a stm -> ('a -> 'b stm) -> 'b stm

t >>= f is an alternative notation of bind t f

val (>>) : 'a stm -> 'b stm -> 'b stm

t1 >> t2 is equal to t1 >>= fun _ -> t2 which first execute t1 and wait for its result but ignore it, and then behaviors like t2
...

Re[2]: [Ocaml] STM не на Haskell :)
От: Курилка Россия http://kirya.narod.ru/
Дата: 06.03.07 11:32
Оценка:
Здравствуйте, palm mute, Вы писали:

PM>Здравствуйте, Курилка, Вы писали:


К>>Собственно наткнулся на сабж. Software Transactional Memory вещь довольно популярная в последнее время, но не помню чтобы речь шла о реализации её не на хаскеле.

PM>Самое смешное, что эта реализация использует монады. На первый взгляд, это порт оригинальной реализации STM на хаскеле:
PM>http://www.pps.jussieu.fr/~li/software/stmlib/doc/html/Stm.html

А что смешного и зачем ты урл туда же дал?
Re[3]: [Ocaml] STM не на Haskell :)
От: palm mute  
Дата: 06.03.07 11:43
Оценка: 9 (2)
Курилка wrote:
>
> PM>http://www.pps.jussieu.fr/~li/software/stmlib/doc/html/Stm.html
>
> А что смешного и зачем ты урл туда же дал?

Но урл же не совсем туда же, он на внутреннюю страницу, правильно ?
Просто решил поделиться тем, что показалось забавным/интересным, no
offense intended. Спасибо за ссылку, кстати.

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

SPJ и другие на примере STM демонстрировали преимущества изоляции
сайд-эффектов в монадах. Увидев твое сообщение, некоторые подумают —
ерунда эти ваши монады, вон на Окамле STM без всяких монад сделали. Но,
если приглядеться, можно заметить:
1) сделали НЕ без монад
2) переложили часть проблем на программиста (см. retry_now, atom_once).

Надеюсь, мое сообщение не спровоцирует новый флейм.

Posted via RSDN NNTP Server 2.0
Re[4]: [Ocaml] STM не на Haskell :)
От: Курилка Россия http://kirya.narod.ru/
Дата: 06.03.07 11:53
Оценка:
Здравствуйте, palm mute, Вы писали:

PM>SPJ и другие на примере STM демонстрировали преимущества изоляции

PM>сайд-эффектов в монадах. Увидев твое сообщение, некоторые подумают —
PM>ерунда эти ваши монады, вон на Окамле STM без всяких монад сделали. Но,
PM>если приглядеться, можно заметить:
PM>1) сделали НЕ без монад
Дак тут уже не раз писалось, что монады ониж не только в Хаскеле могут появиться, так же как ООП на сях реализуемо (хотя и немного шаткая аналогия). Да и без монад можно обойтись, но умение разглядеть их в коде, имхо, даёт как минимум новую грань понимания происходящего.
Re[5]: [Ocaml] STM не на Haskell :)
От: Mirrorer  
Дата: 06.03.07 12:09
Оценка:
Здравствуйте, Курилка, Вы писали:

К> Да и без монад можно обойтись,


Роза пахнет розой, хоть розой назови ее хоть нет. (с)
Можно процесс упрятывания сайд эффектов внутрь чегонить обозвать No-Side-Effect-Cool-Pattern,
или допустим Isolated Process Data Pattern(Привет Erlangу ) или Dirt Incapsulation. Суть то от этого не поменяется. Кто захочет — увидит в этом какую-то монаду. Кто захочет увидеть что-то другое — увидит что-то другое.

К> но умение разглядеть их в коде, имхо, даёт как минимум новую грань понимания происходящего.

Естествено увидишь когда монадные >>= , return никто даже не пытался спрятать
А по сути +1.
Вопрос остается о границах применимости этой новой грани понимания происходящего в мирных целях... А тут уж все от конкретного человека зависит.
"Если Вы отличаетесь от меня, то это ничуть мне не вредит — Вы делаете меня богаче". Экзюпери
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.