0.14.1 ā€¢ Published 1 year ago

sibilisp v0.14.1

Weekly downloads
16
License
MIT
Repository
github
Last release
1 year ago

GitHub license NPM version Github stars NPM downloads

A multi-paradigm, functional programming oriented, Sibilant based language dialect that transpiles to JavaScript. šŸ‘½

(defun palindrome? (input)
  ;; predicate thats check if the given input string is a palindrome
  (loop ((start-pos 0)
         (end-pos (- (length input) 1)))
    (cond ((not (eql? (getf input start-pos) (getf input end-pos)))
           false)
          ((>= start-pos end-pos)
           true)
          :else (recur (+ start-pos 1) (- end-pos 1)))))

(palindrome? "kayak")  ; => true
(palindrome? "baobab") ; => false

Features

Sibilisp ...

  • brings the ES2015+ module system to Sibilant, as well as macros for ES2015+ promises, default function arguments, generator functions, yielding...
  • enables tail recursive programming via it's loop and recur construct.
  • is tailored towards functional programming concepts, but remains being a multi-paradigm language.
  • has build-in facilities for creating tagged type and sum type constructors.
  • supports .slisp, .sibilant and .js files in the same project and can compile all of them into plain JavaScript files.
  • results in readable JavaScript that does not modify built-in prototypes. šŸ¤—
  • is fun to use. šŸ˜Ž

Documentation

As of now, documentation can be found in the GitHub wiki.

Wiki

Guides

API & Language

Examples
šŸš§ Under construction

Reasoning

Sibilant is a LISP-like language based on s-expressions, that is written in itself and transpiles to JavaScript. It ships a very nice macro system with it that almost* works like a real LISP macro system (awesome!). However, writing Sibilant code is almost the same as writing JavaScript code (that's by intention) whereas it could be operating on a much higher level of abstraction. This is when Sibilisp comes into play.

Sibilisp uses the underlying macro system of Sibilant to further develop a dialect that enhances it's base language, ranging from macros that implement various new JavaScript features - like the ES2015+ module system - to macros which provide pattern matching** or recursion.

As a free bonus, Sibilisp ships with a functional programming toolkit as separate ES2015+ module called prelude that you can use in your programs. If you are a JavaScript programmer, think of it as a built-in Lodash or Underscore.

Notes:
* Everything is based on JavaScript, so certain limitations apply
** Again, to a limited degree

0.14.1

1 year ago

0.13.0

2 years ago

0.14.0

1 year ago

0.9.4

2 years ago

0.11.0

2 years ago

0.12.0

2 years ago

0.10.0

2 years ago

0.9.3

2 years ago

0.9.0

2 years ago

0.8.1

2 years ago

0.9.2

2 years ago

0.9.1

2 years ago

0.8.2

2 years ago

0.6.9

3 years ago

0.6.10

3 years ago

0.8.0

3 years ago

0.7.0

3 years ago

0.6.8

3 years ago

0.6.7

3 years ago

0.6.6

3 years ago

0.6.5

3 years ago

0.6.4

3 years ago

0.6.3

3 years ago

0.6.2

3 years ago

0.6.1

3 years ago

0.6.0

3 years ago

0.5.1

3 years ago

0.5.0

3 years ago

0.4.4

3 years ago

0.4.3

4 years ago

0.4.2

4 years ago

0.4.1

4 years ago

0.4.0

4 years ago

0.3.5

4 years ago

0.3.4

4 years ago

0.3.3

4 years ago

0.3.2

4 years ago

0.3.1

4 years ago

0.3.0

4 years ago

0.2.0

4 years ago

0.1.0

4 years ago