add first example

This commit is contained in:
千住柱間 2026-01-12 23:14:13 -04:00
commit 4c67abac0b
Signed by: hashirama
GPG key ID: 53E62470A86BC185

17
infiniteArithmetic.fr Normal file
View file

@ -0,0 +1,17 @@
data Expr
= Val Int
| Add Expr Expr
| Mul Expr Expr
eval :: Expr -> Int
eval (Val n) = n
eval (Add a b) = eval a + eval b
eval (Mul a b) = eval a * eval b
exprs :: [Expr]
exprs = map Val [0..] ++
[ Add a b | a <- exprs, b <- exprs ] ++
[ Mul a b | a <- exprs, b <- exprs ]
main :: IO ()
main = print (take 10 (map eval exprs))