use pattern definitions to clean up some code
This commit is contained in:
parent
a96869b5b3
commit
3b2441db92
13
irc.lamb
13
irc.lamb
|
@ -16,9 +16,6 @@ splitirc(str) -> splitirc'(str, "", []).
|
|||
head(x::_) -> x.
|
||||
tail(_::xs) -> xs.
|
||||
|
||||
fst((x, _)) -> x.
|
||||
snd((_, y)) -> y.
|
||||
|
||||
-- (result, rest)
|
||||
takeUntilSpace'(" "::xs, acc) -> (acc, xs).
|
||||
takeUntilSpace'(x::xs, acc) -> takeUntilSpace'(xs, acc + x).
|
||||
|
@ -81,12 +78,12 @@ handleCommand(src, cmd, args) ->
|
|||
handleLine(line) -> do
|
||||
if head(line) == ":" then do
|
||||
-- source
|
||||
sp = takeUntilSpace(tail(line));
|
||||
message = splitirc(snd(sp));
|
||||
handleCommand(fst(sp), head(message), tail(message))
|
||||
(source, rest) = takeUntilSpace(tail(line));
|
||||
command::args = splitirc(rest);
|
||||
handleCommand(source, command, args)
|
||||
end else do
|
||||
message = splitirc(line);
|
||||
handleCommand("", head(message), tail(message))
|
||||
command::args = splitirc(line);
|
||||
handleCommand(source, command, args)
|
||||
end
|
||||
end.
|
||||
|
||||
|
|
Loading…
Reference in New Issue