Mercurial > repo
view interps/rhotor/Node.hs @ 2043:a38473ce31ac
<ais523> echo "#!/bin/sh" >bin/list; echo -n \'oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo \' >> bin/list
author | HackBot |
---|---|
date | Thu, 07 Feb 2013 21:47:47 +0000 |
parents | 859f9b4339e6 |
children |
line wrap: on
line source
module Node ( Node(Function,Application,Cons,Symbol,Nil,Break) ) where import Uniqs data Node = Function Node Node Node | Application Node Node | Cons Node Node | Break Node | Symbol Uniqs | Nil instance Eq Node where (==) Nil Nil = True (==) (Cons a1 d1) (Cons a2 d2) = (a1 == a2) && (d1 == d2) (==) (Application a1 d1) (Application a2 d2) = (a1 == a2) && (d1 == d2) (==) (Function a1 d1 c1) (Function a2 d2 c2) = (a1 == a2) && (d1 == d2) && (c1 == c2) (==) (Symbol a) (Symbol b) = a == b (==) a b = False (/=) a b = not (a == b) instance Show Node where show Nil = "Nil" show (Cons a b) = "(Cons " ++ (show a) ++ " " ++ (show b) ++ ")" show (Application a b) = "(Application " ++ (show a) ++ " " ++ (show b) ++ ")" show (Function a b c) = "(Function " ++ (show a) ++ " " ++ (show b) ++ " " ++ (show c) ++ ")" show (Break a) = "**" ++ (show a) show (Symbol a) = "#" ++ (show a)