Преобразование основных функций Scheme в эквиваленты Haskell - PullRequest
3 голосов
/ 31 мая 2011

Я пытаюсь преобразовать код схемы в код на Haskell.

Для этого я хочу знать, как использовать схему

  1. map
  2. lambda
  3. порт возврата из пути к файлу
  4. строка чтения из порта
  5. добавление в список
  6. regexp-match
  7. GUI

в Haskell

Может кто-нибудь сказать мне, как это сделать в Haskell?спасибо

Ответы [ 2 ]

9 голосов
/ 31 мая 2011

По сути, вам необходимо изучить Haskell, язык и библиотечную экосистему. Чтобы найти библиотеки и функции, начните с изучения Prelude, поскольку в нем определено много вещей. Затем перейдите к Hackage, где у вас есть тысячи библиотек для выбора.

В частности, большую часть того, что вам нужно, можно найти в Prelude, а через Hoogle .

  1. map определено.

  2. "лямбда" - это синтаксис: \x -> ... e ...

  3. «порт возврата из пути к файлу»: попробуйте openFile

  4. «чтение из порта», попробуйте hGetLine

  5. «добавить в список», попробуйте ++

  6. "regexp-match", используйте одну из библиотек точных регулярных выражений из Hackage.

  7. "GUI", выберите один из gtk2hs или wxHaskell .

3 голосов
/ 31 мая 2011

Прежде всего, если у вас нет опыта работы с Haskell, я бы посоветовал вам прочитать хорошее введение, например

Оба доступны бесплатно.

Особенно важно, чтобы у вас в Haskell была разница между чистыми (например, вычислениями) и нечистыми (например, IO) вычислениями. Обращение с ними требует от вас иногда думать по-другому. Кроме того, Haskell ленив, и, следовательно, ваш код не может быть переведен простым изменением синтаксиса.

По остальным пунктам см. ответ Дона Стюарда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...