diff options
| author | Joel Martin <github@martintribe.org> | 2014-04-23 21:46:57 -0500 |
|---|---|---|
| committer | Joel Martin <github@martintribe.org> | 2014-04-23 21:46:57 -0500 |
| commit | 89bd4de1e2704c1bc562788b2c5e4fc08b71a538 (patch) | |
| tree | 3ec33ca7e1030fdef0905317fdf911b8487685f0 /docs/step_notes.txt | |
| parent | 85cc53f35b8302e13f0014454ac320b971c196db (diff) | |
| download | mal-89bd4de1e2704c1bc562788b2c5e4fc08b71a538.tar.gz mal-89bd4de1e2704c1bc562788b2c5e4fc08b71a538.zip | |
Perl: add vector, hash-map, metadata, atom support. TCO let*
- Changes all collections to be one level of inderection where the top
level is always a hash containing 'meta' and 'val'.
Diffstat (limited to 'docs/step_notes.txt')
| -rw-r--r-- | docs/step_notes.txt | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/docs/step_notes.txt b/docs/step_notes.txt index 79036a8..09bc356 100644 --- a/docs/step_notes.txt +++ b/docs/step_notes.txt @@ -78,8 +78,6 @@ Step Notes: - eval_ast: - if symbol, return value of looking up in env - if list, eval each item, return new list - - if vector support, eval each item, return new vector - - if hash_map support, eval each value, return new hash_map - otherwise, just return unchanged ast - EVAL/apply: - if not a list, call eval_ast @@ -87,6 +85,12 @@ Step Notes: - repl_env as simple one level assoc. array (or hash_map) - store function as hash_map value +- vectors + - eval each item, return new vector + +- hash-maps + - eval each value, return new hash_map + - step3_env - types module: - may need function type if HashMap is strongly typed (e.g. Java) @@ -195,6 +199,8 @@ Step Notes: - Extra defintions needed for self-hosting - core module: - symbol?, sequential? (if not already) + - vector, vector? + - Other misc: - conj function @@ -202,14 +208,16 @@ Step Notes: - atoms - reader module: - @a reader macro -> (deref a) - - types module: + - core module: - pr_str case - atom type, atom, atom?, deref, reset!, swap! - metadata - - types module: - - support meta property on symbols, hash-maps, lists, vectors, - functions, atoms - - add with-meta, meta functions - reader module: - ^ reader macro reads ^meta obj -> (with-meta obj meta) + - types module: + - support meta property on collections: lists, vectors, + hash-maps, functions, atoms + - clone/copy of collections + - core module: + - add with-meta, meta functions |
