Roman Godmaire
|
d62da288c5
|
refactor: use forked enum_str
I did not expect to spend my evening forking this library, but here we are...
|
2024-07-15 21:42:10 -04:00 |
|
Roman Godmaire
|
5fa8e1a6ae
|
misc!: rename fn* to lambda
I just like it more
|
2024-07-15 19:34:45 -04:00 |
|
Raine Godmaire
|
fa8195458d
|
misc: clippy
|
2024-07-15 18:55:14 -04:00 |
|
Raine Godmaire
|
8f9f299e13
|
refactor: special data type for built-ins
These are now not specials or included in the core environment
|
2024-07-15 18:52:58 -04:00 |
|
Roman Godmaire
|
5a623af9ad
|
feat: allow step size for range
|
2024-05-14 20:07:16 -04:00 |
|
Roman Godmaire
|
ab20f6e85e
|
refactor: namespaces(?)
And move list functions over there
|
2024-05-14 20:04:35 -04:00 |
|
Roman Godmaire
|
285b93aa89
|
feat: reduce + fold
|
2024-05-14 16:08:21 -04:00 |
|
Roman Godmaire
|
a2210f2db3
|
fix: 1-based indexing, babey
|
2024-05-14 14:48:52 -04:00 |
|
Roman Godmaire
|
e25c9baa66
|
lint: clippy
|
2024-05-14 14:21:18 -04:00 |
|
Roman Godmaire
|
06a2bc13d8
|
feat: modulo operator
|
2024-05-14 14:20:27 -04:00 |
|
Roman Godmaire
|
25ea02d5e6
|
feat: filter for iterators
|
2024-05-14 14:18:19 -04:00 |
|
Roman Godmaire
|
315478826f
|
feat: map function for iterators
|
2024-05-14 13:46:07 -04:00 |
|
Roman Godmaire
|
a7c6e1a07d
|
refactor: remove mutable reassignment
|
2024-05-14 11:50:01 -04:00 |
|
Roman Godmaire
|
ed86c884ec
|
feat: range function
|
2024-05-14 11:39:48 -04:00 |
|
Roman Godmaire
|
6a83d228bb
|
feat: lisp/vec manipulation
first, last, nth, push, pop
|
2024-05-13 10:07:44 -04:00 |
|
Roman Godmaire
|
5f7f7e4aed
|
feat: swap macro
|
2024-05-12 22:10:44 -04:00 |
|
Roman Godmaire
|
07c01a1e39
|
refactor: Vec to VecDeque
|
2024-05-12 21:48:47 -04:00 |
|
Roman Godmaire
|
5e98637ae0
|
fix: quote macro
|
2024-05-12 15:17:55 -04:00 |
|
Roman Godmaire
|
6c08af02a1
|
fix: unquote not being truly recursive
Before we were skipping checks for unquotes within specials, which
themselves contain lists. Quote is still broken, funnily enough.
|
2024-05-12 15:00:06 -04:00 |
|
Roman Godmaire
|
02463197c3
|
misc: Chesterton's Fence
Everything is a list in lisp for a reason 🙃
|
2024-05-12 08:11:12 -04:00 |
|
Roman Godmaire
|
047db2b188
|
feat: proc macro to write mute in rust
|
2024-05-11 13:19:58 -04:00 |
|
Roman Godmaire
|
4f882b35a6
|
refactor: move arg count
We only use this in the evaluator env, so move it to there.
|
2024-05-11 07:56:48 -04:00 |
|
Roman Godmaire
|
de4e9b4bd3
|
refactor: use macros for semi-repeated functions
|
2024-05-10 21:27:00 -04:00 |
|
Roman Godmaire
|
5669a04db0
|
feat: return errors on bad operations
The vast majority of these will turn into parse time type checks
|
2024-05-10 19:23:48 -04:00 |
|
Roman Godmaire
|
1958da3a96
|
docs: future of errors
|
2024-05-10 19:00:56 -04:00 |
|
Roman Godmaire
|
c53bb68b13
|
misc: grammar(?)
|
2024-05-10 18:56:21 -04:00 |
|
Roman Godmaire
|
2e19a44c0a
|
feat: error node
Errors as values, baby!!
|
2024-05-10 18:54:18 -04:00 |
|
Roman Godmaire
|
ff6b12e408
|
lint: clippy
|
2024-05-10 11:24:45 -04:00 |
|
Roman Godmaire
|
c855b216ee
|
misc: devenv
|
2024-05-10 11:23:38 -04:00 |
|
Roman Godmaire
|
e54d095c5f
|
refactor!: move specials out of env
This is a fucked up commit. If you see this, you have fallen too deep
into the rabbit hole. Come say hi!
|
2024-05-10 11:21:46 -04:00 |
|
Roman Godmaire
|
d8724eb4b7
|
refactor: merge imports
|
2024-05-06 22:36:06 -04:00 |
|
Roman Godmaire
|
872195f6a5
|
feat: support floats in ordering operators
|
2024-05-06 22:35:39 -04:00 |
|
Roman Godmaire
|
e4484297a9
|
misc: remove i128 support
Rather than doing this, we should use a BigNumber library
|
2024-05-06 22:16:05 -04:00 |
|
Roman Godmaire
|
f1083009a4
|
refactor: split parser and interpreter into separate crates
|
2024-05-06 21:51:22 -04:00 |
|
Roman Godmaire
|
e49dbab859
|
feat: rudimentary float support
|
2024-05-06 08:50:38 -04:00 |
|
Roman Godmaire
|
1ed451e696
|
fix: support up to 128-bit integers
Floats should be next
|
2024-05-06 08:28:46 -04:00 |
|
Roman Godmaire
|
cbdff2c170
|
lint: clippy fixes
|
2024-05-06 08:01:18 -04:00 |
|
Roman Godmaire
|
5e072c0773
|
misc: remove anyhow dependency
|
2024-05-06 07:57:54 -04:00 |
|
Roman Godmaire
|
7e4166386f
|
refactor: extract CLI to binary
Also start getting rid of anyhow
|
2024-05-05 11:16:45 -04:00 |
|
Roman Godmaire
|
e9c350e925
|
feat: quasiquote & unquote
This is an abomination, but it works
|
2024-05-05 10:31:02 -04:00 |
|
Roman Godmaire
|
66a2905c60
|
misc: CLI ergonomic improvements
|
2024-05-05 09:49:12 -04:00 |
|
Roman Godmaire
|
c321bf83d3
|
docs: Add my name <3
|
2024-05-05 09:36:50 -04:00 |
|
Roman Godmaire
|
db4bb2de8f
|
feat: actual CLI interface
|
2024-05-05 09:21:45 -04:00 |
|
Roman Godmaire
|
b3a9bca32d
|
feat: readline support in REPL
|
2024-05-05 08:36:57 -04:00 |
|
Roman Godmaire
|
00ac922bd0
|
feat: basic quoting
... I think this is right?
|
2024-05-04 21:55:17 -04:00 |
|
Roman Godmaire
|
c596e00be8
|
feat: eval/apply functions
|
2024-05-04 21:14:47 -04:00 |
|
Roman Godmaire
|
2d93c83b67
|
feat: File IO!
|
2024-05-04 21:14:35 -04:00 |
|
Roman Godmaire
|
936f557536
|
feat: allow underscores in integers
|
2024-05-04 19:33:39 -04:00 |
|
Roman Godmaire
|
527737f020
|
fix: closures are functions, functions are closures
|
2024-05-04 19:23:25 -04:00 |
|
Roman Godmaire
|
e6b487a09a
|
perf: RC environment
This now means environments are genuinely shared instead of clones
|
2024-05-04 19:03:14 -04:00 |
|