Haskell для Delphi
Автор: DROnik
Установка
Цели
Описание
Как это выглядит
Планы
Установка
Для использования Haskell в своем delphi приложении нужно скачать
Haskell.pas + все dll + все src + минимальные packages + IDE (версия 1.6)
http://../hugide/
Полный набор пакетов можно скачать с официального сайта в составе установочного комплекта WinHugs.
Цели
Haskell - это самый красивый функциональный язык. В нем собранны все лучшие возможности функциональных языков, а его синтаксис максимально приближен к математической нотации и отполирован до блеска. Но на практике им никто не пользуется, так же как и всеми другими ФП. Дело тут и в том что для функциональщины нужны гораздо более квалифицированные программисты, и в ограниченной скорости работы полученных приложений, и, наверно, самое главное - полное выпадение ФП из майнстрима, а как следствие отсутствие прикладной базы. В итоге, на чистом Хаскеле и Ко практически невозможно написать полезное приложение.
Если рассматривать последнее утверждение, то, как мне кажется, проблема в том, что разработчики компиляторов/интерпретаторов мнят свои детища центром вселенной. Они не допускают возможности интеграции ФП в популярные императивные языки. Максимум дают возможность писать dll для ФП-компилятора и то не все. То есть акценты расставлены таким образом, что главное приложение написано на ФП, а вспомогательные библиотеки написаны на чем угодно.
Как показывает практика, подобная политика ни к чему не приводит. Хотелось бы обратить ситуацию с точностью до наоборот. Что бы в обычное делфи приложение можно было максимально удобно включать некоторые куски функционального кода.
Описание
hug.dll - это хаскель интерпретатор, который можно подключить к своему приложению. За стартовую точку взят перекомпилированный в dll runhugs.exe из состава Hugs. По мере продвижения работы исходный си код меняется.
Haskell.pas - это заголовочный файл для библиотеки. В нем имеетя синглтон объект Hugs типа THugsAPI, публичные методы которого указаны ниже
THugsAPI = class public property Active: boolean; //последняя ошибка property LastError: string; //Обновить модули function Reload: boolean; //загрузка модуля function LoadFile(fname: string): boolean; //выполнить команду function doIO( module,expr: string): boolean; //вернуть результат function GetOutput: string; end;
Как это выглядит
С помощью THugsAPI можно создать простой графический интерактивный интерпретатор хаскеля написав всего несколько строк кода
Планы
Текущая функциональность не является конечной точкой, библиотека будет прорабатываться, увеличивая степень интеграции двух миров.
#Delphi, #haskell, #header, #wrapper
29 декабря 2008 (Обновление: 11 дек 2009)
Комментарии [8]