L is a very simple untyped functional programming language based on lambda calculus for evaluating simple math expressions.
This project puts a web interface to the interpreter.

This project contains:
- ✅ A Haskell Scotty server (
l-lang
) - ✅ A Vite + React client (
web-client
) - ✅ Docker + Docker Compose configuration to run both together
./ → Haskell Scotty app (with Dockerfile)
/web-client → Vite + React app (with Dockerfile)
docker-compose.yml → top-level orchestration
- Install Docker → https://docs.docker.com/get-docker/
- Install Docker Compose → included in recent Docker Desktop versions
1️⃣ Clone the repository:
git clone https://github.com/claeusdev/l-lang
cd l-lang
2️⃣ Build and start everything:
docker compose up --build
✅ This will:
-
Build the server from the Haskell Dockerfile.
-
Build the client from the React Dockerfile.
-
Expose:
- Server → http://localhost:3000
- Client (Vite dev server) → http://localhost:5173
Service | Local URL |
---|---|
Server | http://localhost:3000 |
Client | http://localhost:5173 |
-
Stop the services:
docker-compose down
-
Rebuild only:
docker-compose build
-
View logs:
docker-compose logs -f
-
Restart with rebuild:
docker-compose up --build