СУБД с функциональщиной унутре
Болезнь окончательно подкосила мозги, поэтому чтобы не думать над работой, приходится думать над всякой ересью.
Конкретно на данный момент пришла в голову такая идея: представим, что GHCi доработали таким образом, что с ним одновременно могут работать по сети множество пользователей. То бишь, изменения вносимые одним пользователям видны другим.
Если к этому добавить транзакции и сброс содержимого памяти на диск, то можно поиметь некий прототип СУБД с хаскелем в качестве языка запросов. Для реального использования нужно будет прикручивать еще права доступа (что я пока с трудом представляю, как делать - вешать на каждое значение в памяти какой-то ACL, что ли) и придумывать способ прикрутить к этому индексы, хотя насчет индексов идея типа такой: к любому значению можно добавить набор функций, которые при изменении значения вычисляются заранее и результат запоминается. Типа мемоизации заранее.
С обычным хаскелем это не совсем согласуется, т.к. типы значений могут менятся по ходу выполнения ("связали с именем другое значение"). Ну и вообще реализация такой вещи требует каких-то оккультных знаний по внутренностям хаскеля.
Конкретно на данный момент пришла в голову такая идея: представим, что GHCi доработали таким образом, что с ним одновременно могут работать по сети множество пользователей. То бишь, изменения вносимые одним пользователям видны другим.
Если к этому добавить транзакции и сброс содержимого памяти на диск, то можно поиметь некий прототип СУБД с хаскелем в качестве языка запросов. Для реального использования нужно будет прикручивать еще права доступа (что я пока с трудом представляю, как делать - вешать на каждое значение в памяти какой-то ACL, что ли) и придумывать способ прикрутить к этому индексы, хотя насчет индексов идея типа такой: к любому значению можно добавить набор функций, которые при изменении значения вычисляются заранее и результат запоминается. Типа мемоизации заранее.
С обычным хаскелем это не совсем согласуется, т.к. типы значений могут менятся по ходу выполнения ("связали с именем другое значение"). Ну и вообще реализация такой вещи требует каких-то оккультных знаний по внутренностям хаскеля.
no subject
Я такую штуку к питону прикрутил.
Таким образом я на целом выводке робатовЪ софт пишу. из того чего я там наменяю в итоге кодогенерируется программа которая стартанет при следующем запуске.
no subject
no subject
no subject
no subject
no subject
Кстати, ты что из lj выпилился? Да ещё в facebook?
no subject
no subject
no subject
(Anonymous) 2010-10-26 04:29 pm (UTC)(link)(см. slime, swank)
Объявленное в любом repl'е становится немедленно видно всем остальным
no subject
ACL делаются через аннотации (если что). Но оно полностью "юзерспейс" -- то есть в сторадже хранится btree oid->object, остальное живет в виде библиотек.