This commit is contained in:
voidlizard 2025-03-04 10:39:44 +03:00
parent f66a587a2f
commit fdbb7f6a0c
1 changed files with 8 additions and 1 deletions

View File

@ -785,13 +785,20 @@ eval' dict0 syn' = handle (handleForm syn') $ do
body <- case body' of body <- case body' of
[e] -> pure e [e] -> pure e
_ -> throwIO (BadFormException @c w) es -> pure $ mkList es
pure $ mkForm @c "lambda" [ mkList (fmap mkSym args), body ] pure $ mkForm @c "lambda" [ mkList (fmap mkSym args), body ]
ListVal [SymbolVal "fn", LitIntVal n, body] -> do ListVal [SymbolVal "fn", LitIntVal n, body] -> do
pure $ mkForm @c "lambda" [ mkList [ mkSym ("_" <> show i) | i <- [1..n] ], body ] pure $ mkForm @c "lambda" [ mkList [ mkSym ("_" <> show i) | i <- [1..n] ], body ]
ListVal (SymbolVal "fn1" : body) -> do
let e = case body of
[e] -> e
es -> mkList es
pure $ mkForm @c "lambda" [ mkList [ mkSym "_1" ], e ]
ListVal [SymbolVal "lambda", arglist, body] -> do ListVal [SymbolVal "lambda", arglist, body] -> do
pure $ mkForm @c "lambda" [ arglist, body ] pure $ mkForm @c "lambda" [ arglist, body ]