You are viewing ru_declarative

ru_declarative [entries|archive|friends|userinfo]
ru_declarative

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

Редексы [Dec. 21st, 2014|08:45 pm]
_xacid_
Сколько редексов в выражении (1+2)*(3+4) ?
link18 comments|post comment

экономический аспект [Oct. 22nd, 2014|05:24 pm]

beroal
[Tags|]

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

[Update 2014-11-05. «Украинки открыли охоту на женихов-программистов».]

[Update 2014-11-23. Когда будут популярны обычные статистики?]

1. Прикладная наука питается от промышленности. Информатика является теорией программирования. Поскольку программисты являются богачами, и информатикам должно что-то перепадать. Почему мы не наблюдаем перетока денег из программирования в информатику?
link58 comments|post comment

ранг типа полиморфной функции [Oct. 13th, 2014|07:09 pm]

beroal
[Tags|, , ]

Правильно ли эта функция считает ранг типа полиморфной функции?

Read more...Collapse )
linkpost comment

компилятор должен сохранять семантику [Sep. 27th, 2014|07:04 pm]

beroal
[Tags|, , , ]

Народная мудрость гласит, что компилятор должен сохранять семантику языков программирования. Что-то у меня большие сомнения в этом.

Пример 0. Арифметика. Чтобы учесть, что процессор оперирует с числами с ограниченной длиной, информатик задаёт следующую семантику для сложения в ЯП высокого уровня: «Если нет переполнения, то результат сложения равен результату математического сложения, иначе не определён». Формально a0 +h a1 := let b := a0+a1 in if b<limit then {b} else ℕ, то есть +h : ℕ×ℕ → P ℕ. Как композить операции такого типа, очевидно. Процессор, однако, считает по модулю limit или по методу saturated, во всех случаях ∀a0, a1. a0 +p a1 ⊆ a0 +h a1 (+p — сложение процессора). Я считаю, что компилятор имеет моральное право просто транслировать +h в +p. Таким образом, компилятор обязан «сужать» семантику.

Пример 0. Завершение программы. Я считаю, что компилятору достаточно подчиняться следующему правилу: если программа на ЯП высокого уровня завершается, то скомпилированная программа завершается. Не обязательно подчиняться обратной импликации.
link17 comments|post comment

Вопрос залу [Sep. 13th, 2014|11:31 am]

kouzdra
А кто-нибудь с Агдой игрался? Интересуют в основном ссылки на какие-то проектики (пусть даже студенчески-игрушечные) на оной. В качестве примеров реального кода.
link13 comments|post comment

как правильно строить пермутации [Sep. 10th, 2014|04:55 pm]

orleanz
Вот в Хаскелле есть в Data.List функция permutations

Prelude Data.List> permutations [1..3]
[[1,2,3],[2,1,3],[3,2,1],[2,3,1],[3,1,2],[1,3,2]]

Но мне вот надо было недавно самому ее реализовать, и мой алгоритм получился какой-то громоздкий, даже неохота его постить (если кратко, то там делается переход от одной пермутации к "следующей", в лексикографическом порядке)

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

Или я не прав? Может, есть кристально ясное, логичное решение, скажем, на том же Хаскелле?

Обрисуйте хотя бы основную идею, если можно. Спасибо!
link14 comments|post comment

Библиотеки для линейной алгебры и класс типов 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

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