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
|
### TODO
|
||||||
- test whether AIG,,,10 csv row is parsed
|
- test whether AIG,,,10 csv row is parsed
|
||||||
- support for (), nil, t, in lsp code replace 0 by nil in logicals
|
- 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
|
- download 10 years of data from api.nasdaq.com into test dir
|
||||||
- documentation
|
- documentation
|
||||||
- rename data.csv and add more tickers
|
- rename data.csv and add more tickers
|
||||||
- logical operators
|
|
||||||
- add url of source/inspiration to clib/*.cpp
|
- add url of source/inspiration to clib/*.cpp
|
||||||
- add stdtest - to test every functionality
|
- add stdtest - to test every functionality
|
||||||
- rename ivaluize
|
- rename ivaluize
|
||||||
- add benchmark
|
- add benchmark
|
||||||
- add some debug support??
|
- add instrumentation (time, nr of evals, num of atoms, debug info, debug environment etc)
|
||||||
- add instrumentation (time, nr of evals, debug info, debug environment etc)
|
|
||||||
- in casting functions (as_string..) better exception description
|
- in casting functions (as_string..) better exception description
|
||||||
- add better print (syntax high-lighting)
|
- add better print (syntax high-lighting)
|
||||||
- add command line options -h -v
|
- add command line options -h for help, -v for version, -b for no stdlib.lsp on startup
|
||||||
- readline
|
- add readline like functionality (libnoise)
|
||||||
|
- multiline editting (kilo editor)
|
||||||
- execute system command should capture stderr
|
- execute system command should capture stderr
|
||||||
- add builtin sleep
|
- add builtin sleep
|
||||||
- add built in for and, or
|
- add built in for and, or
|
||||||
|
- add some debug support
|
||||||
- file functions
|
- file functions
|
||||||
- name it here
|
- name it here
|
||||||
- string functions
|
- string functions
|
||||||
|
|
@ -36,12 +36,10 @@
|
||||||
- set env
|
- set env
|
||||||
- add hash datatype
|
- add hash datatype
|
||||||
- conversion functions like parse-integer
|
- conversion functions like parse-integer
|
||||||
- list function nth
|
|
||||||
- in test.lisp some explaining prints
|
- in test.lisp some explaining prints
|
||||||
- format (printf)
|
- format (printf)
|
||||||
- setq
|
- setq
|
||||||
- mapcar (funcall, apply)
|
- mapcar (funcall, apply)
|
||||||
- if then else, else part is optionw, allow then clause
|
|
||||||
|
|
||||||
#### Performance
|
#### Performance
|
||||||
- push_back - repeatedly without reserving size
|
- 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
|
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
|
### Example of use
|
||||||
```
|
```
|
||||||
|
|
@ -63,6 +67,8 @@ time ./build/ml -c '(include "../example.lisp") (print (fact 1000))'
|
||||||
https://hyperpolyglot.org/lisp
|
https://hyperpolyglot.org/lisp
|
||||||
https://www.tutorialspoint.com/lisp/index.htm
|
https://www.tutorialspoint.com/lisp/index.htm
|
||||||
https://github.com/adam-mcdaniel/wisp
|
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
|
https://github.com/dropbox/json11
|
||||||
|
|
||||||
|
|
|
||||||
10
debug.lsp
10
debug.lsp
|
|
@ -1,5 +1,5 @@
|
||||||
(print "Debug starts")
|
(print
|
||||||
|
"ahoj"
|
||||||
|
; tenhle komentar je problem
|
||||||
|
)
|
||||||
(print "Debug ends")
|
(print "sds")
|
||||||
|
|
@ -40,7 +40,8 @@
|
||||||
|`(first list)`|Returns first element of a list|First element|
|
|`(first list)`|Returns first element of a list|First element|
|
||||||
|`(last list)`|Returns last element of list|Last 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)`|
|
|`(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 len)`|Return list with len nil elements|`(make-list 3) => (nil nil nil)`|
|
||||||
|`(make-list-of len value)`|||
|
|`(make-list-of len value)`|||
|
||||||
|`(map ..)`||`(map (lambda (x) (+ x 10)) '(1 2 3 4 5 6)) => (11 12 13 14 15 16)`|
|
|`(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)
|
(defun make-list (size)
|
||||||
(make-list-of size nil))
|
(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)
|
(defun quick-sort-by (l cmp)
|
||||||
(if (<= (len l) 1)
|
(if (<= (len l) 1)
|
||||||
l
|
l
|
||||||
|
|
|
||||||
|
|
@ -150,6 +150,8 @@
|
||||||
; (print (filter (lambda (x) (= (first x) "CLX")) csv_list))
|
; (print (filter (lambda (x) (= (first x) "CLX")) csv_list))
|
||||||
(print (filter (lambda (x) (member my_tickers (first x))) 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")
|
(print "Test ends")
|
||||||
|
|
@ -1,25 +1,5 @@
|
||||||
(print "Debug starts")
|
(print
|
||||||
|
"ahoj"
|
||||||
(define csv_list '())
|
; tenhle komentar je problem
|
||||||
(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))
|
|
||||||
; )
|
|
||||||
)
|
)
|
||||||
))
|
(print "sds")
|
||||||
|
|
||||||
(for x csv_list
|
|
||||||
(print x))
|
|
||||||
|
|
||||||
; (if (> 1 10)
|
|
||||||
; (print "aaa"))
|
|
||||||
|
|
||||||
(print "Debug ends")
|
|
||||||
Loading…
Reference in New Issue