Ski: Difference between revisions

Jump to navigation Jump to search
11 bytes added ,  16 October 2018
no edit summary
No edit summary
No edit summary
Line 1: Line 1:
'''Ski''' is a fullstack programming language for web apps I'm working on, inspired heavily by Prolog and Elixir, with a few cool things yanked from Clojure and Python.
'''Ski''' is a fullstack programming language for web apps I'm working on, inspired heavily by Prolog and Elixir, with a few cool things yanked from Clojure and Python.


Prolog's idiosyncratic syntax is actually a really cool thing-- the language is homoiconic, new infix operators can be defined by the user, and it supports pretty seamless macroexpansion; however all these nice features come at a cost. It's impossible to nest expressions without explicitly calling `call`, there's no convenient syntax for a series of operations besides creating a ton of unnecessary variables like in Erlang, and there's no way to differentiate between a compound term (like a list) and something that should be callable like a predicate. Prolog's built in <code>callable/1</code> is useless.
Prolog's idiosyncratic syntax is actually a really cool thing-- the language is homoiconic, new infix operators can be defined by the user, and it supports pretty seamless macroexpansion; however all these nice features come at a cost. It's impossible to nest expressions without explicitly calling <code>call</code>, there's no convenient syntax for a series of operations besides creating a ton of unnecessary variables like in Erlang, and there's no way to differentiate between a compound term (like a list) and something that should be callable like a predicate. Prolog's built in <code>callable/1</code> is useless.


So Ski is my reinvention of Prolog that basically gets rid of functors and compound terms, and evaluates recursively like almost every other language. Sounds crazy, but the regular user never needs to do a bunch of code manipulation; Python gets along fine without it, and it's a great language.
So Ski is my reinvention of Prolog that basically gets rid of functors and compound terms, and evaluates recursively like almost every other language. Sounds crazy, but the regular user never needs to do a bunch of code manipulation; Python gets along fine without it, and it's a great language.

Navigation menu