Conversation
Edited 1 month ago

I had to rethink how I was approaching namespaces in order to implement the (lambda) special form in kaslisp, but I now have an untested prototype of (lambda)!

one thing that I’m kinda proud of is that you can do stuff like this with special forms in kaslisp:

(set λ lambda)

(λ (x y) (+ x y))

(I haven’t created set or + yet but you get the idea I hope)

the “function” that is run in a special form can be treated like any other function: in fact it’s a datatype that I call a “special function” for lack of a better term. it’s literally just a function that automatically quotes its arguments and is allowed to do weird things with the interpreter if it wants

also, in kaslisp you can add an arbitrary number of as and ds to a function call like (caaaddddaaaaadddaaaddaar) lol. and what you will get will be another special function!

4
0
7

lisp doll that stims by saying (cadadadar)

1
3
12

@kasdeya feverishly opening the kaslib issue tracker Please support arbitrary list and struct swizzling my life depends on it

0
0
2
lewd-coded shitpost
Show content

special functions get to play with the interpreter, as a treat

1
0
6

the reason why I’m proud of special forms being their own datatype (instead of essentially just being special cases for the interpreter) is because in Fennel you can’t do (reduce + list) because + is a special form, so you can’t (eval '+) but in kaslisp you can

0
0
3
*very* lewd-coded shitpost
Show content

the interpreter, spreading open its private values: oh~? would you like to do something with me~?

1
0
7
@kasdeya piddling with forth has been overly educational in how lisp-likes and rebol does things. like forth also has namespaces, but they're just an alist of symbols to particular things. factor has complicated namespaces but they're again just a list of alists checked in some order.

what you call a special function would be a macro (clisp, scheme) or a parsing word (forth) which are both wild af things to support.
0
0
1