module Main( main ) where
import System( getArgs )
split :: String -> Char -> [String]
split [] delim = [""]
split (c:cs) delim
| c == delim = "" : rest
| otherwise = (c : head rest) : tail rest
where
rest = split cs delim
arguments_storage1 = "http://ru.wikipedia.org/wiki/"
make_href url title = "<a href='" ++ url ++"'>" ++ title ++ "</a>"
argumentize :: String -> String
argumentize text = foldr (\x y -> x ++ y) "" $
map (\x -> make_href (arguments_storage1 ++ x) x ++ " ") $ split text ' '
main = do
args <- getArgs
print $ argumentize $ foldr (++) "" args
λ runhaskell argumentator.hs "Теперь я могу писать очень аргументированные посты." | pbcopy
Теперь я могу писать очень аргументированные посты.
... вроде как prolog с этим справиться лучше, имхо конечно ...
Почему? Хаскель чистый декларативный язык программирования, еще и с развесистой системой типов. Пролог умер уже, а «цацкель» активно развивается.
Кстати логическое программирование на цацкеле тоже эмулируется.
http://www.haskell.org/haskellwiki/Logic_programming_example
Кстати в данном случае и шелл хорошо справился бы, но захотелось вспомнить хаскельные скилы, почти год не писал ничего.