Leave a comment

Comments 43

anonymous September 11 2010, 18:01:43 UTC
По крайней мере syntax-case мне было относительно удобно использовать, не столько за гигиену сколько за pattern matching.

Reply

swizard September 11 2010, 18:43:30 UTC
Ну паттерн-матчинг это технический момент, тем более, что в таком виде он токо ухудшает читаемость имхо :)

Reply


vannadis September 11 2010, 18:29:59 UTC
Переименованный plt-scheme.
Самая юзабельная реализация схемы в принципе.
переименовались зря только.

Reply

swizard September 11 2010, 18:41:48 UTC
Про plt-scheme я догадался - там ide называется DrRacket :) Правда, я думал, что это форк.

Ты пользовалась его макросистемой?

Reply

vannadis September 11 2010, 20:25:55 UTC
нет.
Макросы я не смотрела пока ни в plt, ни в CL, к сожалению.

Reply

rigidus September 13 2010, 00:25:28 UTC
стоит посмотреть, по крайней мере в CL
удивительно мощный инструмент

Reply


(vs. SBCL) quasi_loop September 12 2010, 02:22:54 UTC
Вот что ещё интересно:

http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=racket&lang2=sbcl
http://shootout.alioth.debian.org/u64/benchmark.php?test=all&lang=racket&lang2=sbcl

Вполне на уровне выглядит. А ведь ещё есть возможность собирать stand alone executable небольшого размера.

Reply


ander_skirnir September 12 2010, 03:44:59 UTC
Приятная макросистема с фичами а-ля лукап &environment'ов sb-cltl2 искаробки.
Радует благословлённость dsl (#lang), наличие континуейшенов и всяких amb'ов, куча батареек.
А насчёт гигиены и паттерн-матчинга - целиком солидарен, потому сам предпочёл бы использовать вместо define-syntax негигиеничный аналог коммон-лисповского defmacro, на который ссылка в последнем пункте вашего анонимуса.
Но коммон-лисп как-то лаконичнее, короче, проще и быстрее (субъективщина).

Reply

ander_skirnir September 12 2010, 20:15:00 UTC
> Радует благословлённость dsl (#lang), наличие континуейшенов и всяких amb'ов, куча батареек.

И ещё "радует" отсутствие unwind-protect. Что при работе со внешними ресурсами при наличии в коде нелокальных выходов легко может привести к их утечке. Это, впрочем, проблема не конкретно ракеты, а всех схем, реализующих продолжения (которые, как широко известно, с unwind-protect принципиально несовместимы).

Reply

ander_skirnir September 13 2010, 01:25:14 UTC
Мне кажется, где-то мы это уже обсуждали ;)
Ну объясните, наконец, чем вас dynamic-wind не устраивает.
http://docs.racket-lang.org/reference/cont.html#%28def._%28%28quote._~23~25kernel%29._dynamic-wind%29%29

Reply

ander_skirnir September 13 2010, 04:29:51 UTC
dynamic-wind сам по себе не годен в замену unwind-protect в ситуациях где поступки post-thunk не обратимы (на пример удаление файла). В таких случаях его надо использовать вешая финализаторы на все продолжения в value-thunk. Подробности здесь (
под 2006-05-01 On control brackets and resource release):

http://mumble.net/~campbell/blag.txt

--Другой анонимус (которого Scheme тоже не устраивает, но по другим причинам)

Reply


anonymous September 12 2010, 10:32:22 UTC
Вообще-то анафорическим макрам ракетовская гигиена никак не мешает - обойти ее можно в точности так же легко, как и ввести через генсим, а если совсем лениво, то можно ридер-макрос написать, который будет сам "разгигиенивать" нужный анафор. Зато иногда благодаря гигиене приходится меньше плясать с бубном и не надо париться на счет того, что можно забыть ее ввести, когда она нужна. Ну про переопределение вызываемых в макросе функций я вообще не говорю, тут без автоматической гигиены никуда.

Reply


Leave a comment

Up