You are viewing ru_declarative

ru_declarative [entries|archive|friends|userinfo]
ru_declarative

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Библиотеки для линейной алгебры и класс типов Fractional. [May. 12th, 2014|07:12 pm]

potan
А нет ли библиотеки, умеющей решать линейные уравнения, желательно разряженные, в произвольных кольцах (instance Fractional или Data.Algebra.Ring) и не требующая странных instance Foreign.Storable.Storable?
link3 comments|post comment

еще один Prolog для Java [Apr. 12th, 2014|09:57 am]

raydac
[Tags|]

по запросу японца одного, достал с полки пылившиеся сырцы моего движка Prolog для юзания вместе с JVM и сделал опенсоурс проект. Движок неочень мощный (зато маленький и весь в одном юберджарнике со всеми библиотеками), разрабатывался скорее для изучения языка и изучения разных механизмов взаимодействия с явой, но так позволяет писать несложное и смотреть как выполняется. Проект опубликован под Apache License 2.0 и доступен на https://code.google.com/p/jprol/
link3 comments|post comment

[Перевод] Путеводитель неофита по Scala (или Scala для продолжающих) [Apr. 11th, 2014|09:16 pm]

unavella
[Tags|, ]

Предлагаю Вашему вниманию перевод серии статей "Путеводитель неофита по Scala".
Серия статей для тех, кто уже освоил основы языка и хочет разобраться в более продвинутых темах.

* Как работают экстракторы
* Обработка исключений через Option, Try, Either
* Параллельные программы с Future и акторами
* ФП в Scala с функциями высшиего порядка, каррированием, классами типов
* Немного о зависимых типах

Перевод: https://github.com/anton-k/ru-neophyte-guide-to-scala

Оригинал: http://danielwestheide.com/scala/neophytes.html
link9 comments|post comment

Книга «Квантовые вычисления и функциональное программирование» [Jan. 29th, 2014|03:49 pm]

_darkus_
Мои дорогие друзья!

Многие из вас знают меня много лет. Некоторые отчаянно и яростно поддерживают мои начинания. Некоторые смотрят на мою деятельность с подозрением. Есть и такие, кто настроен скептически и даже откровенно враждебно. Но я всё равно всех вас люблю, поскольку только так может относиться авто к своим читателям.

Сегодня я хочу обратиться к вам с просьбой. Я начинаю писать новую книгу. Я думаю, что наиболее проницательные из вас, прочитав эти слова, уже поняли, что это будет за книга и на какую тему. Да, это будет книга про квантовые вычисления. Причём если сейчас есть некоторый небольшой набор книг на эту тему на русском языке, то ни одна из имеющихся книг не написана программистом для программиста. Обычно все эти книги написаны физиками для физиков. Да, прочитать и изумиться можно. Да, можно и научиться. Но сегодня я предлагаю совершенно новый подход.

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

Сегодня я открыл проект краудфандинга на Бумстартере. Я искренне считаю, что современное книгоиздание зашло в тупик, и авторы сегодня могут сами издавать свои книги. Множество положительных примеров этому есть. И я готов к этому. Мне не нужны издательства, мне не нужны посредники и торговые представители. Я готов самостоятельно издать книгу, а если кому-то в современный век информационных технологий бумажный экземпляр, выпустить для таких людей и бумажные книги. И это будет круто, я обещаю.

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

1. Поддержки не словом, а делом — найдите возможность перечислить на благое дело хотя бы минимум. Вместе, всем миром мы сделаем благое дело.

2. Поддержки и словом — опубликуйте у себя в блоге ссылку на мой проект с просьбой своим друзьям о поддержке.

И ещё раз ссылка: «Квантовые вычисления и функциональное программирование».
link4 comments|post comment

mosml 2.10 для windows [Nov. 15th, 2013|06:41 am]

slobin
Кому-нибудь удавалось собрать Moscow ML 2.10 (не путать с 2.01) для Windows? 2.10 -- это та, что раздаётся на mosml.org. У меня при попытке сказать в Дебиане make cross_w32 получается нечто, что потом под виндой даже успевает запуститься и сказать традиционное "Moscow ML version 2.10 Enter `quit();' to quit." ,а потом падает. Но я ничего не понимаю в кросс-компиляции, я это в гостях в чужой системе делал. Хочется рецепта для идиотов.
link1 comment|post comment

APL demonstration 1975 [Aug. 3rd, 2013|08:40 pm]

inv2004
Оригинал взят у inv2004 в APL demonstration 1975
найдено в рассылке по j.


link3 comments|post comment

"Нужна гармония для проверки алгебры". [Jul. 2nd, 2013|10:24 pm]

os80
[Tags|, ]

Всем добрый вечер!
Скажите пожалуйста, есть ли хорошая(ие) библиотека(и) для Haskell, "инкапсулирующая(ие)" теорию групп, колец, алгебр и т.д.? В Гугле-Яндексе нахожу только указания, как писать классы для таких библиотек, однако хочется, во-первых, не решать уже решённую задачу а, во-вторых, кроме основных классов иметь также функции для работы с такими структурами (вычисление центров, коммутантов, радикалов... что там ещё?)
Цель - "поиграться" с объектами во время изучения соответствующей теории.
link7 comments|post comment

The HoTT Book [Jun. 21st, 2013|05:38 pm]
nivanych
http://homotopytypetheory.org/book/
http://homotopytypetheory.org/2013/06/20/the-hott-book/
http://golem.ph.utexas.edu/category/2013/06/the_hott_book.html
link4 comments|post comment

Haskell TV [Mar. 30th, 2013|01:21 pm]

unavella
[Tags|]

Обзор системы типов от ПЖ:
http://skillsmatter.com/podcast/java-jee/keynote-3842

Параллельное программирование, библиотека Async (Саймон Марлоу):
http://skillsmatter.com/podcast/home/high-performance-concurrency

Дункан Каутс об акторах (Haskell in the Cloud):
http://skillsmatter.com/podcast/home/cloud-haskell/te-6630

Вадлер, лекции по ФП
http://wadler.blogspot.ro/2013/03/informatics-1-functional-programming.html
link5 comments|post comment

Тьюринг-полнота примитивных слепых автоматов [Mar. 15th, 2013|05:57 pm]

codedot
http://mathoverflow.net/questions/124604/

Пусть N множество натуральных чисел, S множество конечных бинарных последовательностей и

Q = [N → N] × [N → N],

где [N → N] множество всех вычислимых функций на натуральных числах.

Тогда рассмотрим семейство примитивных слепых автоматов

Ap = (Q, {p}, Q, δ, δ),

параметризованных парой p ∈ S × S, с функцией перехода, определенной следующим образом:

δ(f0, f1, x1…xm, y1…yn) = (f0, f′1), где

f′1(k) = fyn(…fy1(1)…), если k = fxm(…fx1(1)…);

f′1(k) = f1(k), если k ≠ fxm(…fx1(1)…).

Существуют ли Тьюринг-полные примитивные слепые автоматы?

Нас интересует p наименьшей длины, когда Ap полон по Тьюрингу.

Замечания

Входной алфавит состоит из одного элемента. Выходом является текущее состояние автомата. Заметим, что для любой пары p ∈ S × S, существуют состояния Ap, которые не меняются при переходе. Таким образом, тупиковое состояние - одна из возможных форм останова. Другими словами, автомат завершает работу, когда текущее состояние становится неподвижной точкой для функции перехода. Такие автоматы полны по Тьюрингу тогда и только тогда, когда есть способ представить произвольную рекурсивную функцию в виде начального состояния, например используя лямбда-термы или сети взаимодействия (interaction nets) Lafont. Способ представления должен быть алгоритмом, который гарантированно завершается для любого лямбда-терма или эквивалентной конструкции.

Каждое состояние q = (f0, f1) само можно также описать как автомат

Mf0, f1 = (N, {0, 1}, N, ϕf0, f1, ϕf0, f1), где ϕf0, f1(n, b) = fb(n).

В качестве альтернативы, о каждом состоянии (f0, f1) можно думать, как о бесконечном направленном графе с ровно двумя дугами (помечены 0 и 1), исходящими из каждой вершины. Вершина, соответствующая натуральному числу 1, рассматривается как корень. Во время перехода от одного состояния к другому первая бинарная последовательность в p соответствует пути от корня к вершине, чья дуга 1 перенаправляется на вершину, к которой ведет путь, соответствующий второй бинарной последовательности в p.

Например, пусть q = (f0, f1) и p = (10, 011). Тогда в графе q′ = δ(q, p) дуга, помеченная 1, исходящая из вершины f0(f1(1)) направлена на вершину f1(f1(f0(1))), и эта дуга - единственное различие между графами q и q′.

К настоящему моменту, мы находим (1111, 11010) возможным кандидатом для универсального примитивного слепого автомата. Для этой пары бинарных последовательностей, состояния, которые не обязательно ведут к тупиковому состоянию, окажутся следующих трех типов.

1. При условии f1(f1(1)) = 1.
2. При условии f1(f1(f1(1))) = 1.
3. При условии f1(f1(f1(f1(1)))) = 1.

В состояниях второго типа, изменяется вершина f1(1) ≠ 1; назовем этот тип "записью". В свою очередь, типы (1) и (3) изменяют корневую вершину; назовем их "переходами". (1) и (2) оставляют вершину с дугой 1, направленной на корневую вершину, когда как (3) оставляет односвязный список из трех вершин, завершающийся корневой вершиной. Таким образом, возможен перезаписывающий сценарий для произвольной вершины n. А именно, существует состояние, ведущее к "записи" n, "переходу" к некоторой другой вершине x ≠ n, "переходу" обратно к n, и "записи" в n другого значения.

Хотя вопрос об универсальности A1111, 11010 все еще остается открытым, мы обнаружили, что если первая бинарная последовательность в паре короче 1111, то не существует перезаписывающих сценариев для произвольной вершины.
linkpost comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]