Nanolang

  • 1 Replies
  • 423 Views
*

Zero

  • Trusty Member
  • ********
  • Replicant
  • *
  • 737
    • Thinkbots are free
Nanolang
« on: October 08, 2018, 10:34:52 am »
No no, it isn't lisp, really. But it uses parentheses.

Any decent programmer could survive with just assignment, loops, and conditionals, would you agree?

This is a symbol:
a

This is a list:
(a b c)

This is a quoted symbol:
'a

Quoted symbols don't evaluate, as usual.

Lists starting with a defined symbol execute this symbol:
(+ 1 2 3 4)

This is a sum, which evaluates to 10.

Here is the fun part.

Assignment
Lists starting with a quoted symbol assign their cdr to the symbol:
('toys ("a ball" "a cowboy" "a doll"))

Conditional
Lists starting with a boolean evaluate their cdr if the boolean is true:
((< age 80) print "Forever young!!!")

Loop
Lists starting with a 2 elements list evaluate to a for-each loop:
((toys t) print (& "I have " t))

Zip.
Thinkbots are free, as in 'free will'.
Check out Hashbag

*

Zero

  • Trusty Member
  • ********
  • Replicant
  • *
  • 737
    • Thinkbots are free
Re: Nanolang
« Reply #1 on: October 09, 2018, 08:26:12 am »
There was a mistake in the loop form (the iterator t should be a symbol 't) + I went a little further.

Next step was obvious, what's a language without function? Ok, we can't live without them, but they rock.

Assignment
Lists starting with a quoted symbol assign their cdr to the symbol:
('toys ("a ball" "a cowboy" "a doll"))

Conditional
Lists starting with a boolean evaluate their cdr if the boolean is true:
((< age 80) print "Forever young!!!")

Loop
Lists starting with a 2 elements list evaluate to a for-each loop:
((toys 't) print (& "I have " t))

Lambda
Lists starting with a quoted list of symbols evaluate to a lambda:
('(x y) sqrt (+ (sqr x) (sqr y)))

Unlike Lisp, a function body made of several expressions returns the first available value, instead of the last. This is because IFs have no ELSEs (if the THEN part is executed, the function returns its value, else it continues evaluation of its body until it has something to return).
Thinkbots are free, as in 'free will'.
Check out Hashbag

 


Users Online

71 Guests, 1 User
Users active in past 15 minutes:
Art
[Global Moderator]

Most Online Today: 87. Most Online Ever: 208 (August 27, 2008, 09:36:30 am)

Articles