diff options
| author | Arnaud Bailly <arnaud@pankzsoft.com> | 2025-11-05 09:15:46 +0100 |
|---|---|---|
| committer | Arnaud Bailly <arnaud@pankzsoft.com> | 2025-11-05 09:15:46 +0100 |
| commit | ae59f17cb3d58de7afca7f441d8bcf9a718e024c (patch) | |
| tree | e1ca429a9a5468f6e69b998eef91bb16727054c7 /lambda-calcul/haskell/test/Minilang/Lambda/ParserSpec.hs | |
| parent | 62651f13e08304d8fa6395fde7352984f48adb46 (diff) | |
| download | lambda-nantes-ae59f17cb3d58de7afca7f441d8bcf9a718e024c.tar.gz | |
handle defitions in untyped language
Diffstat (limited to 'lambda-calcul/haskell/test/Minilang/Lambda/ParserSpec.hs')
| -rw-r--r-- | lambda-calcul/haskell/test/Minilang/Lambda/ParserSpec.hs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/lambda-calcul/haskell/test/Minilang/Lambda/ParserSpec.hs b/lambda-calcul/haskell/test/Minilang/Lambda/ParserSpec.hs index e7816c6..e6f05b9 100644 --- a/lambda-calcul/haskell/test/Minilang/Lambda/ParserSpec.hs +++ b/lambda-calcul/haskell/test/Minilang/Lambda/ParserSpec.hs @@ -98,14 +98,14 @@ spec = parallel $ do ) `shouldSatisfy` isRight - it "parses a definition" $ do - let defStr = "(def id (lam (x) x))" - expectedAST = Def "id" (Abs ["x"] (Sym "x")) - parse defStr `shouldBe` Right expectedAST + prop "parses a definition" $ + forAll (genDef 5) $ \ast -> + let text = pretty ast + in parse text `shouldBe` Right ast spine :: AST -> Int spine = \case - App x y rest -> 1 + spine x + length rest + App x _ rest -> 1 + spine x + length rest _ -> 0 arity :: AST -> Int |
