Функциональные реализации языка Производственных хранилищ данных Класса

Существует много хранилищ данных, записанных в Erlang, например, Riak, Dynomite, CouchDb, Scalaris, я скучал по кому-либо?

Я знаю, что Java и C/C++ также использовались для записи хранилищ данных (Cassandra, Гипертаблица, и т.д.), но какие-либо Хранилища данных были записаны на каких-либо других функциональных языках, таких как F#, Scala, Haskell, Clojure, и т.д.? Причина я спрашиваю это (и многие другое функциональное программирование и вопросы о типе Erlang) состоит в том, чтобы оценить выполнимость языков функционального программирования для проектов реального мира.

Как примечание стороны было указано мне, что я означаю язык фактической реализации самого хранилища данных а не клиентский язык получать доступ к хранилищу данных (т.е.: через ODBC).

7
задан 6 revs, 2 users 71% 5 February 2010 в 19:27
поделиться

4 ответа

  1. Data.Tcache - это кэш транзакций с настраиваемой сохраняемостью для Haskell.
  2. Elephant - это база данных постоянных объектов для Common Lisp с полной семантикой транзакций.
  3. CLSQL - база данных SQL для интерфейса Common Lisp.
  4. AllegroCache - это высокопроизводительная система баз данных с динамическим кэшированием объектов для Allegro Common Lisp.
  5. Spark-Scheme поставляется со встроенной базой данных и поддержкой ODBC.
9
ответ дан 6 December 2019 в 10:50
поделиться

Изменения параметра значения не видны вызывающему абоненту (также называемому «pass by value»).

Изменения ссылочного параметра видны вызывающему абоненту («pass by reference»).

Пример C++:

void by_value(int n) { n = 42; }
void by_ref(int& n) { n = 42; }

void also_value(int const& n); // Even though a reference is used, this is
// semantically a value parameter---though there are implementation
// artifacts, like not being able to write "n = 42" (it's const) and object
// identity (&n here has different ramifications than for by_value above).

Одним из способов использования указателей является реализация «справочных» параметров без использования специальной ссылочной концепции, которой некоторые языки, например C, не имеют. (Конечно, вы также можете рассматривать указатели как сами значения.)

-121--4551149-

Sans-jQuery solution:

function makeNewElementFromElement( tag, elem ) {

    var newElem = document.createElement(tag),
        i, prop,
        attr = elem.attributes,
        attrLen = attr.length;

    // Copy children 
    elem = elem.cloneNode(true);
    while (elem.firstChild) {
        newElem.appendChild(elem.firstChild);
    }

    // Copy DOM properties
    for (i in elem) {
        try {
            prop = elem[i];
            if (prop && i !== 'outerHTML' && (typeof prop === 'string' || typeof prop === 'number')) {
                newElem[i] = elem[i];
            }
        } catch(e) { /* some props throw getter errors */ }
    }

    // Copy attributes
    for (i = 0; i < attrLen; i++) {
        newElem.setAttribute(attr[i].nodeName, attr[i].nodeValue);
    }

    // Copy inline CSS
    newElem.style.cssText = elem.style.cssText;

    return newElem;
}

Например

makeNewElementFromElement('a', someDivElement); // Create anchor from div
-121--3181268-

FleetDB является базой данных без схемы в Clojure.

3
ответ дан 6 December 2019 в 10:50
поделиться

Ваш вопрос меня немного озадачивает. Вы спрашиваете о хранилищах данных, написанных на различных языках. Обычно, когда я программирую, я ищу библиотеку или API для получения и передачи данных в хранилище данных на выбранном мной языке. В чем написано базовое хранилище данных (если оно написано на чем-нибудь, некоторые хранилища данных - не более чем макеты файлов), мне все равно.

И на этой основе небольшой поиск в Google приведет к появлению библиотек Haskell-to-ODBC, и я полагаю, что другие языки будут иметь аналогичные возможности. Я ничего не знаю об этом, поэтому не буду комментировать их пригодность для проектов.

3
ответ дан 6 December 2019 в 10:50
поделиться

В каком-то смысле вы уже ответили на свой вопрос. Системы, которые вы упомянули, и другие из комментариев, ЯВЛЯЮТСЯ , написанными на функциональных языках, и ЯВЛЯЮТСЯ определенно проектами из реального мира, поэтому ответ - да .

3
ответ дан 6 December 2019 в 10:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: