fixes & updates
added uniq function task.json doc updates
This commit is contained in:
parent
903c8fd49d
commit
eed18e0f90
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
||||
// for the documentation about the tasks.json format
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "ml -f debug.lsp",
|
||||
"type": "shell",
|
||||
"command": "ml -f debug.lsp",
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "ml -f tests/test.lsp",
|
||||
"type": "shell",
|
||||
"command": "ml -f tests/test.lsp",
|
||||
"isDefault": false,
|
||||
"problemMatcher": []
|
||||
}
|
||||
]
|
||||
}
|
||||
22
Readme.md
22
Readme.md
|
|
@ -5,24 +5,24 @@
|
|||
### TODO
|
||||
- test whether AIG,,,10 csv row is parsed
|
||||
- support for (), nil, t, in lsp code replace 0 by nil in logicals
|
||||
- print-table
|
||||
- some performance functionality (at least counting how many times symbol was evaluated)
|
||||
- download 10 years of data from api.nasdaq.com into test dir
|
||||
- documentation
|
||||
- rename data.csv and add more tickers
|
||||
- logical operators
|
||||
- add url of source/inspiration to clib/*.cpp
|
||||
- add stdtest - to test every functionality
|
||||
- rename ivaluize
|
||||
- add benchmark
|
||||
- add some debug support??
|
||||
- add instrumentation (time, nr of evals, debug info, debug environment etc)
|
||||
- add instrumentation (time, nr of evals, num of atoms, debug info, debug environment etc)
|
||||
- in casting functions (as_string..) better exception description
|
||||
- add better print (syntax high-lighting)
|
||||
- add command line options -h -v
|
||||
- readline
|
||||
- add command line options -h for help, -v for version, -b for no stdlib.lsp on startup
|
||||
- add readline like functionality (libnoise)
|
||||
- multiline editting (kilo editor)
|
||||
- execute system command should capture stderr
|
||||
- add builtin sleep
|
||||
- add built in for and, or
|
||||
- add some debug support
|
||||
- file functions
|
||||
- name it here
|
||||
- string functions
|
||||
|
|
@ -36,12 +36,10 @@
|
|||
- set env
|
||||
- add hash datatype
|
||||
- conversion functions like parse-integer
|
||||
- list function nth
|
||||
- in test.lisp some explaining prints
|
||||
- format (printf)
|
||||
- setq
|
||||
- mapcar (funcall, apply)
|
||||
- if then else, else part is optionw, allow then clause
|
||||
|
||||
#### Performance
|
||||
- push_back - repeatedly without reserving size
|
||||
|
|
@ -52,6 +50,12 @@ cp build/ml /usr/local/bin/ml
|
|||
cp stdlib/stdlib.lsp /usr/local/var/mlisp/stdlib.lsp
|
||||
```
|
||||
|
||||
#### Compile
|
||||
```
|
||||
gcc -o ml -I/usr/local/opt/openssl/include -Iclib -L/usr/local/lib -L/usr/local/opt/openssl/lib -lm -lstdc++ -lcrypto -lssl -Wl,-stack_size -Wl,0x1000000 --std=c++17 ml.cpp ml_io.cpp ml_date.cpp ml_string.cpp clib/json11.cpp clib/csvparser.cpp clib/sslclient.cpp
|
||||
```
|
||||
or
|
||||
cmake
|
||||
|
||||
### Example of use
|
||||
```
|
||||
|
|
@ -63,6 +67,8 @@ time ./build/ml -c '(include "../example.lisp") (print (fact 1000))'
|
|||
https://hyperpolyglot.org/lisp
|
||||
https://www.tutorialspoint.com/lisp/index.htm
|
||||
https://github.com/adam-mcdaniel/wisp
|
||||
http://www.ulisp.com/show?1AWG
|
||||
http://journal.stuffwithstuff.com/2013/12/08/babys-first-garbage-collector/
|
||||
|
||||
https://github.com/dropbox/json11
|
||||
|
||||
|
|
|
|||
10
debug.lsp
10
debug.lsp
|
|
@ -1,5 +1,5 @@
|
|||
(print "Debug starts")
|
||||
|
||||
|
||||
|
||||
(print "Debug ends")
|
||||
(print
|
||||
"ahoj"
|
||||
; tenhle komentar je problem
|
||||
)
|
||||
(print "sds")
|
||||
|
|
@ -40,7 +40,8 @@
|
|||
|`(first list)`|Returns first element of a list|First element|
|
||||
|`(last list)`|Returns last element of list|Last element|
|
||||
|`(range low high)`|Returns list with elements in range low .. high|`(range 1 5) => (1 2 3 4)`|
|
||||
|`(member list item)`|||
|
||||
|`(member list item)`|Returns true (1) when list contains item||
|
||||
|`(uniq list)`|Returns list with removed duplicates ||
|
||||
|`(make-list len)`|Return list with len nil elements|`(make-list 3) => (nil nil nil)`|
|
||||
|`(make-list-of len value)`|||
|
||||
|`(map ..)`||`(map (lambda (x) (+ x 10)) '(1 2 3 4 5 6)) => (11 12 13 14 15 16)`|
|
||||
|
|
|
|||
|
|
@ -85,8 +85,21 @@
|
|||
(defun make-list (size)
|
||||
(make-list-of size nil))
|
||||
|
||||
(defun uniq (lst)
|
||||
(do
|
||||
(define rslt '())
|
||||
(define i 0)
|
||||
(define lst_len (len lst))
|
||||
(while (< i lst_len)
|
||||
(define e (index lst i))
|
||||
(if (not (member rslt e))
|
||||
(define rslt (push rslt e)))
|
||||
|
||||
(define i (inc i)))
|
||||
|
||||
rslt
|
||||
))
|
||||
|
||||
; quicksort
|
||||
(defun quick-sort-by (l cmp)
|
||||
(if (<= (len l) 1)
|
||||
l
|
||||
|
|
|
|||
|
|
@ -150,6 +150,8 @@
|
|||
; (print (filter (lambda (x) (= (first x) "CLX")) csv_list))
|
||||
(print (filter (lambda (x) (member my_tickers (first x))) csv_list))
|
||||
|
||||
|
||||
(define l '(1 2 2 2 3 4 5 4 4 1 2 2 2 3 4 5 4 4 61 2 2 2 3 4 5 4 4 66))
|
||||
(print "list:" l)
|
||||
(print "uniq-ed list:" (uniq l))
|
||||
|
||||
(print "Test ends")
|
||||
|
|
@ -1,25 +1,5 @@
|
|||
(print "Debug starts")
|
||||
|
||||
(define csv_list '())
|
||||
(for f (ls-dir "tests/divi")
|
||||
(if (regex-search? f "^divi_2021-02-0[1].*\.csv$")
|
||||
(do
|
||||
(define filename (+ "tests/divi/" f))
|
||||
; (print filename)
|
||||
(define csv_str (read-file filename))
|
||||
(define csv_file_list (parse-csv csv_str))
|
||||
(define csv_list (+ csv_list csv_file_list))
|
||||
; (for x csv_file_list
|
||||
; (print x)
|
||||
; (define csv_list (+ csv_list csv_file_list))
|
||||
; )
|
||||
)
|
||||
))
|
||||
|
||||
(for x csv_list
|
||||
(print x))
|
||||
|
||||
; (if (> 1 10)
|
||||
; (print "aaa"))
|
||||
|
||||
(print "Debug ends")
|
||||
(print
|
||||
"ahoj"
|
||||
; tenhle komentar je problem
|
||||
)
|
||||
(print "sds")
|
||||
Loading…
Reference in New Issue