Commit Graph

157 Commits

Author SHA1 Message Date
Pekka Laiho
34bb3fea8a ability to give custom env into readEval function 2022-07-04 15:55:38 +07:00
Pekka Laiho
9aa9d4b20f add macros when and unless 2022-07-04 13:28:16 +07:00
Pekka Laiho
8f4edd2106 add contains? function for collections 2022-07-04 13:26:50 +07:00
Pekka Laiho
ce74a2ff82 add functions min and max 2021-06-01 17:21:53 +07:00
Pekka Laiho
7fd0005735 add standard I/O streams and few functions 2020-12-25 08:38:45 +07:00
Pekka Laiho
215c694bea 4th argument to re-split to if empty strings are removed (default to true) 2020-12-22 10:16:12 +07:00
Pekka Laiho
c38d29d805 add some i/o functions for working with files 2020-12-21 11:14:49 +07:00
Pekka Laiho
c9a095a857 add function: system 2020-12-21 09:36:49 +07:00
Pekka Laiho
c39064a682 add support for special characters in strings: vertical tab, null 2020-12-21 09:13:27 +07:00
Pekka Laiho
7049d54427 add functions for hashing and encoding 2020-12-21 08:49:05 +07:00
Pekka Laiho
b4d8715525 add funcs for string comparison, support strings in reverse 2020-12-21 07:51:31 +07:00
Pekka Laiho
3941f9c99e add more string functions 2020-12-20 19:56:03 +07:00
Pekka Laiho
a9a8558faa add getEnv method to Lisp 2020-12-20 16:36:48 +07:00
Pekka Laiho
9cf87a0c35 add pstr method to Lisp class 2020-12-20 13:54:27 +07:00
Pekka Laiho
c53eba8d23 add functions car and cdr because they are familiar for Lispers 2020-12-19 20:46:51 +07:00
Pekka Laiho
16808c7ff9 add support for variable arguments using & 2020-12-19 17:45:18 +07:00
Pekka Laiho
d1052b9b32 more unit tests 2020-12-17 09:45:37 +07:00
Pekka Laiho
d363700a39 add shortcut ~@ for unquote-splice 2020-12-16 22:01:50 +07:00
Pekka Laiho
b18fc9cde2 unit tests for Printer class 2020-12-16 09:12:40 +07:00
Pekka Laiho
170b8d424f add Unicode support to Tokenizer 2020-12-15 18:28:02 +07:00
Pekka Laiho
ea7382caa3 rewrite Tokenizer to handle strings better 2020-12-15 09:03:21 +07:00
Pekka Laiho
6869c0392b fix error messages 2020-12-14 09:32:16 +07:00
Pekka Laiho
c87ce34f1e add comment blocks to source files 2020-12-14 08:49:07 +07:00
Pekka Laiho
56d9a1ff90 changes to print functions, other small changes 2020-12-14 08:22:22 +07:00
Pekka Laiho
7e146d8a9d remove #! from beginning of loaded files to support use in shell scripts 2020-12-13 15:34:03 +07:00
Pekka Laiho
5c4836d3ff rewrite run.php 2020-12-13 14:33:33 +07:00
Pekka Laiho
cf75c6eefd add while, remove loop 2020-12-12 14:53:48 +07:00
Pekka Laiho
487a4fa345 remove ability to call env with argument 2020-12-12 09:08:37 +07:00
Pekka Laiho
dc6c206f4e add mtime, move timer from core to madlisp 2020-12-11 21:30:34 +07:00
Pekka Laiho
83c1e54463 allow multiple expressions in let body 2020-12-11 21:29:35 +07:00
Pekka Laiho
36cf1ad719 add case special form, improve readme 2020-12-11 08:57:31 +07:00
Pekka Laiho
435c9e6bd3 change case to cond 2020-12-10 21:46:03 +07:00
Pekka Laiho
9d2de20c1e remove coinflip, add randf, rand-seed 2020-12-10 20:55:14 +07:00
Pekka Laiho
458d09c007 Optimization: remove some usage of array_map 2020-12-10 20:41:09 +07:00
Pekka Laiho
882bbe8405 check php extensions when loading libraries 2020-12-10 19:51:49 +07:00
Pekka Laiho
167711c4f0 added support for try-catch exception handlers 2020-12-09 18:09:35 +07:00
Pekka Laiho
6077dc135c improve exceptions, add type for user exceptions 2020-12-09 08:09:12 +07:00
Pekka Laiho
cc1709f30a make more stuff available in safe-mode 2020-12-08 18:01:44 +07:00
Pekka Laiho
b7ff127e6b add function: pstr 2020-12-08 17:39:26 +07:00
Pekka Laiho
a34d528d80 compare symbols using name 2020-12-08 17:05:28 +07:00
Pekka Laiho
86cba08088 added special form: undef 2020-12-08 16:13:40 +07:00
Pekka Laiho
07f9c7af8e added functions unset and unset! 2020-12-08 16:02:56 +07:00
Pekka Laiho
87cff43e93 move meta to special forms from core functions 2020-12-08 08:25:53 +07:00
Pekka Laiho
086765d286 small optimization for evaller 2020-12-07 09:13:46 +07:00
Pekka Laiho
55da5fb9b6 Optimization: refactor Evaller class, remove evalAst function 2020-12-06 21:11:36 +07:00
Pekka Laiho
d1b412f913 move new-function from Seq to Collection 2020-12-06 21:05:04 +07:00
Pekka Laiho
351647944d Optimization: keep macro names in cache to avoid unnecessary macro lookups 2020-12-06 17:32:29 +07:00
Pekka Laiho
9459c07529 improve debug data, add depth to eval 2020-12-06 14:27:55 +07:00
Pekka Laiho
16f2e615b1 small optimization for evaller 2020-12-06 13:50:51 +07:00
Pekka Laiho
304e112f37 Optimization: remove extra function call from macroexpand 2020-12-06 13:32:52 +07:00