From fdbb7f6a0c77feaa704aa4aa2fc29cb2497d7150 Mon Sep 17 00:00:00 2001 From: voidlizard Date: Tue, 4 Mar 2025 10:39:44 +0300 Subject: [PATCH] fn1 form --- .../lib/Data/Config/Suckless/Script/Internal.hs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/miscellaneous/suckless-conf/lib/Data/Config/Suckless/Script/Internal.hs b/miscellaneous/suckless-conf/lib/Data/Config/Suckless/Script/Internal.hs index 0c1e8d22..f66cecc5 100644 --- a/miscellaneous/suckless-conf/lib/Data/Config/Suckless/Script/Internal.hs +++ b/miscellaneous/suckless-conf/lib/Data/Config/Suckless/Script/Internal.hs @@ -785,13 +785,20 @@ eval' dict0 syn' = handle (handleForm syn') $ do body <- case body' of [e] -> pure e - _ -> throwIO (BadFormException @c w) + es -> pure $ mkList es pure $ mkForm @c "lambda" [ mkList (fmap mkSym args), body ] ListVal [SymbolVal "fn", LitIntVal n, body] -> do 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 pure $ mkForm @c "lambda" [ arglist, body ]