Используйте файлы
Не вводите свой код непосредственно в GHCI если это действительно не однострочный.
Сохраните код в текстовом файле PatternMatch.hs и загрузите его в ghci, набрав.
:l PatternMatch.hs
, а затем, если вы сделаете изменения (и сохранить), вы можете загрузить файл в GHCI набрав
:r
В качестве альтернативы, можно назвать файлы, после чего осуществляют они находятся, или просто reusablle Temp.hs, если это действительно код throwaway.
Сохраняя материал в текстовом файле, вы делаете его гораздо более легко редактируемым и многоразовым.
Модулей
Позже вы будете собирать соответствующие функции вместе с помощью правильного модуля, поэтому они могут быть импортером в другие программы. Например, вы могли бы
module UsefulStuff where
pamf = flip fmap
сохраняются в файле с именем UsefulStuff.hs, а затем в другом файле вы можете
import UsefulStuff
, а затем использовать функции из UsefulStuff там.
Модули являются излишними для того, что вы делаете сейчас, но получая рабочий процесс редактирования, сохранения, повторной компиляции, проверки, повторения, вы сэкономите себя от довольно много усилий.
Ваш оригинальный 'bar' использует соответствующий шаблон.Вы хотите узнать о [охранниках] (http://en.wikibooks.org/wiki/Haskell/Truth_values#Guards). – dave4420
Вы можете быть особенно умны и писать просто 'let bar | в противном случае = (*) '... – leftaroundabout
Удалите' = 'перед первым защитником' let bar x y | x == 0 = ... | y == 0 = ... | иначе = ... '. –