25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1.9 KiB

DONE docs as a external dict to make LO smaller

CLOSED: [2020-03-29 So 20:00]

DONE and_then_action NAS_Action

CLOSED: [2020-03-29 So 20:01]

DONE renames [8/8]

CLOSED: [2020-03-29 So 20:49]

  • define-syntax -> define-macro

  • mutate -> mutate!

  • pair -> cons

  • first -> car

  • rest -> cdr

  • generate-docs -> generate-docs-file

  • break -> show-environment

  • mytry -> attempt

DONE rename modifying functions to have suffix '!'

CLOSED: [2020-03-29 So 21:00]

DONE write and/or as macros

CLOSED: [2020-03-29 So 21:27]

DONE consisitent names (Lisp_Object_Type_to_string .. lisp_object_to_string)

CLOSED: [2020-03-29 So 21:27]

DONE use better type names: u32, ..

CLOSED: [2020-03-31 Di 11:36]

TODO when copying LO<string>, check if string itself is being copied

TODO define-syntax-shorthand

(define-syntax-shorthand [ vector ] ) (define-syntax-shorthand { hash-map } )

TODO doc generation

TODO assert list_length for arguemns of macros

???

TODO update header files

TODO source code locations

TODO function let

(let fac ([n 10]) (if (zero? n) 1 (* n (fac (sub1 n))))) 3628800

TODO rename slime to plisk

TODO BUG 1: eval dot notation

  (eval `(+ . ,(list 1 2 3)))
  ;; should output 6
  ;; throws error instead

TODO BUG 2: eval dot notation

  (begin
   (define a (list 1 2 3))
   (eval `(+ . ,a)))
  ;; should output 6
  ;; outputs 0

TODO BUG 3: unnecessary copying?

define((test val),"") { fetch(val) ; printf("addr of arg: %lld\n", (unsigned long long)&val); return Memory::nil; };

then:

(define a "a")
(test a)          ;; will output an adress
(if 1 (test a) 2) ;; will output a different adress

TODO BUG 4: arg parsing

(define (range (:from 0) to) ...)

should error since we can't have positional args after keywords. right now, 'to' is silently ignored..