60 Commits

Author SHA1 Message Date
bc8b362878
better naming for the typecheck functions 2024-12-31 01:50:22 +01:00
af953eb133
assert that lazy values are constant 2024-12-21 17:00:16 +01:00
859ab6c518
arithmetic optimizations 2024-12-21 16:26:37 +01:00
6a321ef1a3
constant evaluation of builtins 2024-12-21 16:02:19 +01:00
3db2380734
"""compiled""" calculator 2024-12-21 15:16:13 +01:00
42bb62ee5f
allow underscore in names 2024-12-20 17:32:27 +01:00
fc72ac8357
compiler optimizations 2024-12-20 15:41:35 +01:00
a9cf220fcb
clean up code 2024-12-20 01:35:39 +01:00
7e7574f3a9
cargo fmt 2024-12-20 01:33:28 +01:00
60df6ddcb5
the most cumbersome way to read in a string and print it again 2024-12-20 01:32:39 +01:00
Jonas Maier
2de4bdb89f make test check multiplicity subtyping instead of multiplicity violation in nfun 2024-12-17 16:30:35 +01:00
Jonas Maier
a673569543 subtyping to make some operations simpler 2024-12-17 16:08:23 +01:00
b3de189e5d
properly display builtins 2024-12-17 13:35:53 +01:00
f4f0393c1e
document parsing limitation and explicitly fail 2024-12-17 13:35:53 +01:00
c430bf3733
list test 2024-12-17 12:32:57 +01:00
d3f449c17f
generic list example 2024-12-17 01:58:17 +01:00
8dbaca2bbc
implement panic 2024-12-15 04:36:04 +01:00
9316f21146
cargo fmt 2024-12-15 04:34:30 +01:00
c065c854fc
builtins using a macro 2024-12-15 04:34:05 +01:00
4883817cf1
fmt 2024-12-15 00:09:07 +01:00
e575d87791
slightly better parse error when integer literal is too big 2024-12-15 00:06:44 +01:00
a89d3b2283
optimization: do not perform last clone of substituted expression 2024-12-14 22:14:19 +01:00
66e81452a5
add timing info 2024-12-14 19:54:46 +01:00
ecc2523132
implement eager evaluation 2024-12-14 19:40:35 +01:00
1e39aa2c7c
replace never-args with dummy values 2024-12-14 19:31:10 +01:00
24cbdffa7d
keep laziness in check 2024-12-11 22:42:58 +01:00
505d5b88db
testing implicit return types 2024-11-24 23:19:03 +01:00
d0ff3d6b6e
fmt, fix, clippy 2024-11-23 01:10:44 +01:00
6ba2443ff6
whitespace trimming 2024-11-23 01:03:29 +01:00
fa73fda4a7
make type errors somewhat readable 2024-11-23 00:22:48 +01:00
5e2c28dec7
if and booleans purely as lambdas 2024-11-22 23:49:20 +01:00
8637fa8791
arrow when asking for input during evaluation 2024-11-22 21:54:19 +01:00
a3c7224a0c
different Ctrl+C behaviour 2024-11-22 21:34:27 +01:00
cad68e93a1
allow functions to omit return type 2024-11-22 21:28:26 +01:00
72cdf3f0ff
let bindings 2024-11-22 21:22:24 +01:00
6b24d4b636
proper repl 2024-11-22 20:29:22 +01:00
95042c999f
repl 2024-11-17 23:47:18 +01:00
0f1d24d03d
more test 2024-11-17 23:46:21 +01:00
cfcbc0b3cd
reading from and writing to the console 2024-07-21 19:09:03 +02:00
bbdd0f9a8a
fix substitution bug 2024-07-21 18:38:12 +02:00
24432d2b37
add primitive types 2024-07-21 17:54:28 +02:00
1160957873
lambda-calculus panics are now results in Rust 2024-07-21 16:26:10 +02:00
adaa9daa27
evaluation 2024-07-21 16:18:06 +02:00
865ec5a889
cargo fmt && cargo clippy --fix 2024-07-21 15:30:48 +02:00
18267a3d79
more test 2024-07-21 15:28:46 +02:00
9346b1b6be
typechecking tests 2024-07-21 14:29:41 +02:00
309b6b16b1
better error message for multiplicity scope violation 2024-07-21 14:12:08 +02:00
dc9d94e6b9
type errors now display span 2024-07-21 14:03:34 +02:00
a39ff9258b
parser adds span to nodes 2024-07-21 13:41:07 +02:00
fedf1d65c0
proper multiplicity 2024-07-21 13:18:43 +02:00