annotate gktemp/target @ 1344:972124ab193f

<GreyKnight> mv ZJCe gktemp/target
author HackBot
date Thu, 10 Jan 2013 13:24:40 +0000
parents
children f05a75aa8c33
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1344
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
1 import Data.List
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
2 import Data.Char
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
3
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
4 standardURL = "http://esolangs.org/wiki/Main_Page"
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
5
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
6
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
7 replace :: (Eq a) => [a] -> [a] -> [a] -> [a]
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
8 replace _ _ [] = []
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
9 replace old new (y:ys) =
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
10 case stripPrefix old (y:ys) of
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
11 Nothing -> y : replace old new ys
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
12 Just ys' -> new ++ replace old new ys'
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
13
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
14 applyGenTemplate :: String -> String -> String -> String -- nick url template -> result
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
15 applyGenTemplate nick url template = nick ++ ": " ++ replace "^" nick (replace "@" url template)
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
16
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
17 applyTemplate :: String -> String -> String -- nick template -> result
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
18 applyTemplate nick template = applyGenTemplate nick standardURL template
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
19
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
20
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
21 main = do
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
22 template <- getLine
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
23 putStrLn (applyTemplate nick template)
972124ab193f <GreyKnight> mv ZJCe gktemp/target
HackBot
parents:
diff changeset
24