Execute HQ9+: Difference between revisions
Content added Content deleted
Line 245: | Line 245: | ||
<lang ela>open Con |
<lang ela>open Con |
||
open Char |
open Char |
||
open Cell |
|||
let eval src = eval' src |
let eval src = eval' src |
||
Line 252: | Line 253: | ||
| be '9' = n! $ eval' xs |
| be '9' = n! $ eval' xs |
||
| be '+' = p! $ eval' xs |
| be '+' = p! $ eval' xs |
||
| else = fail ("Unrecognized " ++ |
| else = fail ("Unrecognized " ++ x) |
||
where ref = |
where ref = cell 0 |
||
et be c = upper x == c |
et be c = upper x == c |
||
et h () = writen "Hello, world!" |
et h () = writen "Hello, world!" |
||
et q () = writen src |
et q () = writen src |
||
et p () = |
et p () = mutate (valueof ref + 1) ref |
||
et n () = bottles [99,98..1] |
et n () = bottles [99,98..1] |
||
where bottles [] = () |
where bottles [] = () |