S-expression-based syntax alternative for Haskell.
Haskell
Switch branches/tags
Nothing to show
Pull request Compare This branch is 33 commits ahead of oubiwann:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
src
.gitignore
LICENSE
README.md
Setup.hs
TELL
lisk.cabal

README.md

Lisk

S-expression-based syntax alternative for Haskell.

This software is incomplete. Don't try to use it.

Latest working example:

{-# OPTIONS -F -pgmF lisk #-}

(module demo
  "A demo program!")

  (import data.char system.io (data.map :as map))

  (:: main ('io ()))
  (= main
    (do
      (<- line get-line)
      (let (= the-line line)
        (= some-map map.empty))
      (case :do get-line
        ("" (put-str-ln "* * Empty!"))
        (x (put-str-ln x)))
      (foo the-line)
      (return ())))

  (= demo
    (do
      (<- line get-line)
        (case :of line
          ("apples" (return "yum"))
          (anything (return "...")))))

  (:: foo (-> 'string ('io ())))
  (= foo x (put-str-ln (show (fib (read x)))))

  (= fib 0 0)
  (= fib 1 1)
  (= fib n (+ (fib (- n 1))
              (fib (- n 2))))

  (= fib2
     (case
       (0 0)
       (1 1)
       (n (+ (fib (- n 1))
             (fib (- n 2))))))

  (:: from-just (-> ('maybe a) a a))
  (= from-just (('just a) b) a)
  (= from-just ('nothing b) b)
```