diff options
| author | Arnaud Bailly <arnaud@pankzsoft.com> | 2026-03-22 13:16:21 +0100 |
|---|---|---|
| committer | Arnaud Bailly <arnaud@pankzsoft.com> | 2026-03-22 13:16:21 +0100 |
| commit | 4fed459d89b6b3abcce8028b19af806b48a38bd7 (patch) | |
| tree | e3bec85996ad03286b261d8f32eb456e35b164e0 /lambda-calcul/haskell/src/Minilang/Server.hs | |
| parent | afb965ca75a106063c36195a1c180baebe610115 (diff) | |
| download | lambda-nantes-4fed459d89b6b3abcce8028b19af806b48a38bd7.tar.gz | |
Add builtin arithmetic operators
* also allow choosing evaluator
* ensures equivalence of evaluators up-to α-renaming
* checks server accepts answers from challenge
Diffstat (limited to 'lambda-calcul/haskell/src/Minilang/Server.hs')
| -rw-r--r-- | lambda-calcul/haskell/src/Minilang/Server.hs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lambda-calcul/haskell/src/Minilang/Server.hs b/lambda-calcul/haskell/src/Minilang/Server.hs index 4252669..1b9fa25 100644 --- a/lambda-calcul/haskell/src/Minilang/Server.hs +++ b/lambda-calcul/haskell/src/Minilang/Server.hs @@ -26,6 +26,7 @@ import Data.Swagger (Swagger) import Data.Text (Text) import Minilang.API (Challenge, LambdaAPI, defaultChallenges) import Minilang.App (Env (..), lambdaApp, makeEnv, runApp) +import Minilang.REPL.Types (Evaluator (..)) import Minilang.Log import Minilang.OpenApi (lambdaSwagger) import Minilang.REPL.Net @@ -45,16 +46,16 @@ data Server = Server serverPort :: Int } --- | Starts HTTP server on given port. +-- | Starts HTTP server on given port using the specified 'Evaluator'. -- This server serves static files from public/ directory and also -- exposes a WebSocket-based REPL under `/repl` path. -startServer :: Int -> IO Server -startServer serverPort = do +startServer :: Int -> Evaluator -> IO Server +startServer serverPort ev = do envs <- newTVarIO mempty logger <- newLog "minilang" loggerMiddleware <- runHTTPLog logger challenges <- readChallenges logger - env <- newStdGen >>= (`makeEnv` challenges) + env <- newStdGen >>= \g -> makeEnv g challenges ev let app = loggerMiddleware $ runNetREPL logger envs (serveAPI env) |
