diff options
| author | Arnaud Bailly <arnaud@pankzsoft.com> | 2025-10-28 16:42:28 +0100 |
|---|---|---|
| committer | Arnaud Bailly <arnaud@pankzsoft.com> | 2025-10-28 16:42:28 +0100 |
| commit | 1c4a175e00e727ac4987f60503bd7dbaeb3f26ad (patch) | |
| tree | 2f25f43036aa9434b77cb0ea1266118288755460 /lambda-calcul/haskell/test | |
| parent | 1eee551ed24b58ba64d54ea19ffaab1b2821a459 (diff) | |
| download | lambda-nantes-1c4a175e00e727ac4987f60503bd7dbaeb3f26ad.tar.gz | |
wip: use de Bruijn indices representation
provide sample complex terms to evaluate
Diffstat (limited to 'lambda-calcul/haskell/test')
| -rw-r--r-- | lambda-calcul/haskell/test/Minilang/Lambda/DeBruijnSpec.hs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lambda-calcul/haskell/test/Minilang/Lambda/DeBruijnSpec.hs b/lambda-calcul/haskell/test/Minilang/Lambda/DeBruijnSpec.hs new file mode 100644 index 0000000..ef8903c --- /dev/null +++ b/lambda-calcul/haskell/test/Minilang/Lambda/DeBruijnSpec.hs @@ -0,0 +1,18 @@ +module Minilang.Lambda.DeBruijnSpec where + +import Minilang.Lambda.DeBruijn (DeBruijn (..), eval, toDeBruijn) +import qualified Minilang.Lambda.Eval as Eval +import Test.Hspec (Spec, it, shouldBe) + +spec :: Spec +spec = do + it "convert term to deBruijn representation" $ do + let term = Eval.Lam "x" (Eval.Lam "y" (Eval.Var "x")) + deBruijn = toDeBruijn term + + deBruijn `shouldBe` Lam (Lam (Var 1)) + + it "evaluates deBruijn term" $ do + let term = App (App (Lam (Lam (Var 1))) (Var 12)) (Var 34) + + eval term `shouldBe` Var 12 |
