LINUX.ORG.RU

Сообщения jtootf

 

[ФП] Связь между терминами

Форум — Development

Доброго времени суток

Не сталкивался раньше с теорией категорий, в связи с чем возник чисто терминологический вопрос. Какое отношение между катаморфизмом и изоморфизмом ? По определению свёртка на списке является изоморфизмом для данной алгебры (собственно, для списка); свёртка на бинарном дереве соответственно является изоморфизмом для алгебры, задаваемой определением бинарного дерева. При этом катаморфизм определяется как обобщённая свёртка над алгебраическими структурами данных - можно ли сказать, что и первая и вторая свёртка будут катаморфизмами ?

И в продолжение - анаморфизм определяется как дуальная концепция к катаморфизму, "развёртка" (unfold); будет ли в таком случае анаморфизм над списком изоморфизмом ? Или для изоморфизма тоже существеут дуальный концепт ?..

Заранее спасибо

>>>

jtootf
()

Generic Haskell

Форум — Development

Доброго времени суток

Вопрос по обобщённому программированию в Haskell (возможно, не только, но возник именно в нём). Задача : обобщить стандартную функцию map на функторы с произвольным количеством аргументов

-- стандартный map
map :: (a -> b) -> [a] -> [b]

-- двухаргументный map
map2 :: (a -> a -> b) -> [a] -> [b]

например реализующий попарное суммирование элементов списка :
map2 (\x y -> x + y) [1, 2, 3] = [3, 5]

Задача : реализовать mapn. Стандартный Haskell (Haskell-98) не позволяет обобщить определение map подобным образом. Generic Haskell позволяет обобщить map на произвольный тип (не только список) :
map :: (a -> b) -> d a -> d b

но вот по количеству аргументов никакой документации у них нет. На #haskell @ FreeNode меня отправили смотреть Template Haskell, но, несмотря на наличие некоторого количества примеров, осиливаю его с трудом

Соответственно и вопрос : сталкивался кто-либо с данной задачей, есть ли мысли о решении, есть ли информация о методах/библиотеках для решения подобных задач. Так же было бы интересно услышать о возможностях решения на других ЯП (например, я могу решить эту задачу на Tcl, хотя и не лучшим образом, и вообще не могу на C++) - очевидно, что на CL она должна решаться элементарно, если кто-то сталкивался с Meta OCaml/Nemerle, было бы интересно услышать и их мнение

Заранее спасибо

>>>

jtootf
()

Tcl/Tk 8.5

Новости — Open Source
Группа Open Source

Сегодня, 20.12.2007 года, вышел первый официальный выпуск Tcl/Tk 8.5 - языка, интерпретатора, и сопутствующей библиотеки виджетов. Среди изменений по сравнению с версией 8.4 - улучшение производительности интерпретатора, нативная поддержка вычислений с произвольной точностью и добавление новой структуры данных dict; что касается библиотеки Tk, то здесь отмечается нативная поддержка стилей виджетов (проект Tile был внесён в ядро Tk), улучшения в рендеринге шрифтов и отрисовке текстовых виджетов, плюс множество частных улучшений (поддержка прозрачности, улучшения внешнего вида, улучшения в механизмах размещения виджетов)

почитать : http://tcl.tk/software/tcltk/8.5.html

скачать : http://tcl.tk/software/tcltk/download...

>>> Подробности

jtootf
()

[@] C/C++, Mono, D

Форум — Development

доброго времени суток

наблюдая последнее время оживлённые обсуждения, касающиеся Mono, Gtk# и иже с ними, задумался над вопросом. в принципе аргументация сторонников языков порядка Java и C# в контексте программирования под Linux по крайней мере отчасти (там, где она не доходит до истеричного забрасывания камнями) вполне обоснована. да - и С, и С++, при наличии крепко занимаемой ниши универсальных (прошу не цепляться к данному слову) ЯП, имеют существенный ряд недостатков. но почему как альтернатива (очевидно неприемлимая для большинства С/С++ программистов) выдвигается именно VM-решение, будь то Java или Mono ? я не говорю сейчас о платформо-независимых решениях, это дело отдельное - я говорю исключительно о разработке под Linux. почему сторонники C не используют Cyclone ? почему сторонники C++ не используют D ? почему эти ЯП, имеющие практически полный набор преимуществ своих предшественников, и избавляющие программиста от многих и многих недостатков С/C++, имеют под Linux аудиторию куда меньшую, чем у того же C# ?

жду мнений

>>>

jtootf
()

XAR : eXtensible ARchiver

Форум — Development

Доброе время суток

Вопрос по сабжу. Сталкивался ли кто-нибудь с этим форматом, может есть где какие готовые утилиты для его использования ? На официальном сайте (в рамках google code) нашёл только исходники библиотеки. Собственно, есть файл в этом формате, крайне необходимо его исследовать, а вручную делать этого не хочется. Заранее спасибо

>>>

jtootf
()

Полиморфные функции в С++

Форум — Development

Доброе время суток

Последнее время думал над разницей в реализации шаблонов функций в C++ и полиморфных функций в Haskell; и вот вчерашнее обсуждение подтолкнуло меня к мысли о том, что полиморфные функции в С++ могут быть введены сразу же с введением концепций из C++0x : по сути концепция, описывающая неявный интерфейс в С++ является аналогом класса типов Haskell'а; уточняя с какой концепцией ведётся работа в шаблоне мы имеем возможность избежать генерации избыточного обьектного кода. Комментарии ?

>>>

jtootf
()

Rebol

Форум — Development

Доброе время суток

В догонку - сабж. Кто-нибудь писал на нём что-то сложней однострочников ?

>>>

jtootf
()

Паттерн интерпретатор

Форум — Development

Доброе время суток

Интересует опыт практической разработки с использованием нескольких языков программирования - в связке host (желательно компилируемый, но не обязательно) + один или несколько embedded интерпретируемых. Причём интересно было бы услышать как об использовании готовых, расчитанных на встраивание языков (tcl, rebol, lua, python etc), так и о создании языка под задачу. Заранее спасибо

P.S. Собственный мой опыт (успешный) ограничен связкой C++ + Tcl/Tk (через библиотеку C++/Tcl), приходилось сталкиваться с boost.python - C++ + Python. С boost.spirit сталкивался, но до практического использования в проекте дело не дошло

>>>

jtootf
()

Парадокс LISP'а

Форум — Development

Доброе время суток

В продолжение обсуждения такой казус. Цитата с википедии : "...строгая типизация подразумевает выполнение следующих обязательных условий: 1) каждое значение, переменная, параметр и возвращаемое значение функции на этапе проектирования программы безусловно привязывается к определённому типу данных, который не может быть изменён во время выполнения программы (т. н. статическая типизация)..."

то есть в соответствии с этим определеним (если оно, конечно, верно), строго типизированный язык обязан быть статически типизированным

как при этом LISP может быть строго, но динамически типизированным ? где ошибка ?

>>>

jtootf
()

Типизация : статика против динамики

Форум — Development

Доброе время суток

Ещё один вопрос более общего характера. Насколько мне известно, в, скажем, CL и Erlang используется динамическая типизация; в том же Haskell - статическая, с выведением типов, основанным на модели типизации Хиндли-Милнера; во многих языках применяется статическая типизация без выведения типов. Прошу высказать личные (но желательно аргументированные) мнения о преимуществах/недостатках подходов

>>>

jtootf
()

Логика высших порядков (HOL)

Форум — Development

Доброе время суток

Ещё один вопрос по ФП. Не так давно столкнулся с рядом задач, требующих логики высших порядков (Higher Order Logic, HOL) для своего решения; столкнулся с языком Isabelle/HOL (Isabelle/HOLCF) и с утверждением, что Haskell не поддерживает HOL (ни подтвердить ни опровергнуть пока не могу - не хватает знаний по сабжу). Соответственно вопрос : сталкивался ли кто-нибудь с подобными задачами, и в каких современных ЯП общего назначения реализован HOL ?Isabelle не подходит - он сугубо DSL. Заранее спасибо

P.S. за ссылки на электронную литературу по сабжу так же буду весьма благодарен :)

>>>

jtootf
()

Ищу красивых задач для ФП

Форум — Development

Доброе время суток

Знатоки функциональной парадигмы, а подкиньте-ка с десяток интересных и более-менее сложных задач, которые бы элегантно решались с помощью ФЯП (CL, Haskell), и куда менее элегантно - с помощью, скажем, C/C++/Java. Эффективность важна, поэтому сравнения со скриптовыми языками не требую - хотелось бы, чтобы скомпилированный результат (при наличии компилятора для языка, и при эффективной реализации - без потери элегантности и читаемости кода) не уступал C'шному (в идеале FORTRAN'овскому) коду более чем в 5-7 раз (особенно если задача расчётная). В частности интересуют примеры задач, в которых можно было бы от души воспользоваться гибкостью системы типов, характерной для функциональных языков. Ну и наконец - хотелось бы задач с обьёмом работ на ~пара дней каждая для опытного ФЯ-программиста. Заранее спасибо

>>>

jtootf
()

Реализация итеративного алгоритма Витерби

Форум — Development

Кто-нибудь знает хорошо зарекомендовавшие себя по производительности открытые (OSS, не обязательно GPL) реализации итеративного алгоритма Витерби, HMM (Hidden Markov Model), DTW (Dynamic Time Warp) ? В принципе буду благодарен за любую информацию об открытых системах распознавания речи, специализированных под поиск ключевых слов (Keyword Spotting), желательно на компилируемом языке (C/C++, Haskell)...

jtootf
()

Расширяя Erlang

Форум — Development

Вопрос ко всем, кто работал с erlang/OTP : каким образом пишутся новые BIF (Built-In Function) для elang-машины ? Собственно, интересует C-интерфейс. В наборе стандартной документации есть только документ по внешнему взаимодействию C-программ с erlang-нодами...

jtootf
()

Практическое использование Haskell

Форум — Development

Доброе время суток

Последнее время активно разбираюсь в функциональном (декларативном) программировании, в частности с Haskell 98 (использую GHC/GHCi для отладки). Перечитал с десяток рекоммендуемых на http://www.haskell.org мануалов, под рукой всегда стандарт языка. Однако дальше возникли проблемы. Пытаюсь найти примеры практического использования Haskell для решения прикладных задач - либо нахожу учебные, простенькие вещи (вроде задачи о восьми ферзях, генератор phone number words, etc), с которыми всё понятно, либо проекты вроде House Haskell OS, с P-logic (нестандартное расширение языка), и чудовищными концепциями в основе. Подскажите, есть ли что-нибудь среднее ? Проекты на Haskell, имеющие не только академический смысл, и содержащие хотя бы 1000 строк кода, но читаемые для описанного мною выше моего уровня :) заранее спасибо всем.

jtootf
()

emacs + gdb

Форум — Development

Просьба опытным пользователям emacs в качестве IDE : расскажите, пожалуйста, о настройке взаимодействия с gdb, и возможностях использования подобной связки. Заранее благодарен %)

jtootf
()

RSS подписка на новые темы