40 lines
962 B
Org Mode
40 lines
962 B
Org Mode
* TODO rename slime to plisk
|
|
* TODO rename modifying functions to prefix '!'
|
|
* TODO go through sicp and use the examples as test files
|
|
|
|
* TODO test macro expanding to macro
|
|
* TODO BUG 1: eval dot notation
|
|
#+BEGIN_SRC lisp
|
|
(eval `(+ . ,(list 1 2 3)))
|
|
;; should output 6
|
|
;; throws error instead
|
|
#+END_SRC
|
|
|
|
* TODO BUG 2: eval dot notation
|
|
#+BEGIN_SRC lisp
|
|
(begin
|
|
(define a (list 1 2 3))
|
|
(eval `(+ . ,a)))
|
|
;; should output 6
|
|
;; outputs 0
|
|
#+END_SRC
|
|
* TODO BUG 3: unnecessary copying?
|
|
define((test val),"") {
|
|
fetch(val) ;
|
|
printf("addr of arg: %lld\n", (unsigned long long)&val);
|
|
return Memory::nil;
|
|
};
|
|
|
|
then:
|
|
#+begin_src slime
|
|
(define a "a")
|
|
(test a) ;; will output an adress
|
|
(if 1 (test a) 2) ;; will output a different adress
|
|
#+end_src
|
|
* TODO BUG 4: arg parsing
|
|
#+begin_src slime
|
|
(define (range (:from 0) to) ...)
|
|
#+end_src
|
|
should error since we can't have positional args after keywords. right now, 'to' is silently
|
|
ignored..
|