diff --git a/remix/README b/remix/README index 39af3b4..5efc4af 100644 --- a/remix/README +++ b/remix/README @@ -1,17 +1,3 @@ -DONE @ everywhere - -DONE demonstrate how @ everywhere enables non-() macros like datalog - -DONE {} particular => (#%braces) - -DONE {} infix - -DONE [] particular => (#%brackets) - -DONE default #%brackets is (let () ....) - -DONE . in ids => x.y => (%#dot x y) - TODO #%dot is extensible transformer (struct posn ((complex x) y)) @@ -61,7 +47,7 @@ TODO No set! (use data-structure mutation and :=) TODO No effects or expressions at top-level (controversial, mf says wrong) [set-once!] -DONE "Versioned" libraries +TODO "Versioned" libraries TODO Make macros less weird and more like programs, by... @@ -89,21 +75,9 @@ TODO New structs (more reflective information, representation control, sealing) TODO Implicit units and interfaces (with properties) -DONE Bare-bones /base - -#lang racket/base -(define BASE-NAMES (namespace-mapped-symbols (make-base-namespace))) -(for ([i (in-list BASE-NAMES)]) - (displayln i)) -(displayln (length BASE-NAMES)) - -returns 1433 - TODO Generics everywhere https://github.com/stamourv/generic-collections -DONE Non-() syntax "mode" - TODO bindings to cooperate with {} array.[{1 + 1}].(foo) @@ -114,25 +88,11 @@ array.[{1 + 1}].(foo) {x := z + 13} {p.x + p.y}) -DONE Implicit nesting in blocks - - (def (f x) - (def y 17) - (+ x y)) - TODO Immutable strings only -DONE Remove letrec weirdness of define? - -(def (f x) - (def [even (λ (x) (odd x))] - [odd (λ (x) (even x))]) - (even x)) - TODO "define"-transformers for attaching meta-information to definitions, like documentation, tests, contracts, types, etc TODO Bindings & keywords everywhere ----- DONE cond TODO Less representation contraints @@ -140,8 +100,6 @@ TODO Meaningless eq? semantics TODO Literate programming and inline docs easily -DONE No case-lambda - TODO Optional traditional numbers (num/generic => +) TODO Optional non-coercing number tower (num/{fl,fx,i32,i64,f32,f64,nat,int,rational,real}) @@ -172,8 +130,6 @@ TODO zos don't appear to users (switch to interp if no write access) TODO only use syntax-parse and define-simple-macro -DONE use \ldots as ... - TODO add a threading macro TODO types and other information in syntax-local-value @@ -184,11 +140,6 @@ TODO @literate TODO @docs -DONE [] for Rec def blocks or def* for let* behavior - and Search for def in block and trans to local-def which sees body - -DONE [] for def & def* transformer - TODO Meta def & def* trans for more expansion (docs and test), static info (types), and def transformers (types), maybe syntax --- transformer (can change define to define-syntax/etc) vs expander @@ -205,15 +156,8 @@ TODO greg's defs https://github.com/greghendershott/defn https://github.com/greghendershott/def-jambda -DONE nest form like def* for things like parameterize that would look -weird as def* transformers - -DONE stx def transfomer - TODO fun def transformer -DONE mac def transformer (simple-macro) - TODO mac def+ transformer (syntax-parser) TODO parameterize def* transformer