Курсовая работа: Адресная книжка на Haskell
icqTest :: String -> Bool
По наличию @ в строке устанавливает ее принадлежность к полю e-mail.
pare :: [String] -> [(String,String)]
Из входной строки формирует список пар ICQ и e-mail.
pare2 :: [String] -> [(String,String)]
Из входной строки формирует список пар e-mail и ИОФ
comp :: String -> [(String,String)] -> String
Функция алгоритма поиска для получения ИОФ контакта
f :: [(String,String)] -> [(String,String)] -> String
Функция алгоритма поиска, формирует структуру таблицы html документа.
outFile :: String -> String -> String -> IO()
Функция, выводящая результаты поиска в файл и формирующая html документ
main :: IO ()
Входная точка в программу, формирует графический интерфейс пользователя.
4. Программная реализация
import Graphics.UI.WX
import Graphics.UI.WXCore
import System
import Char ( toUpper)
import IO
--test for e-mail? or ICQ?
icqTest :: String -> Bool
icqTest [] = False
icqTest (x:xs) = if x=='@' then True else icqTest xs
--pare ICQ and E-mail
pare :: [String] -> [(String,String)]
pare [] = []
pare [x] = (x," "):[]
pare (x:xs) = if icqTest (head xs)==False then (x,head xs):[]++pare (tail xs) else (x," "):[]++pare xs