small lisp updates

This commit is contained in:
VaclavT 2021-02-21 21:53:45 +01:00
parent a87964f552
commit 2700cdeea3
3 changed files with 22 additions and 14 deletions

1
.gitignore vendored
View File

@ -4,3 +4,4 @@ build
ml ml
.DS_Store .DS_Store
CMakeFiles CMakeFiles
Testing

View File

@ -38,6 +38,9 @@
; return fourth element of list ; return fourth element of list
(defun fourth (l) (index l 3)) (defun fourth (l) (index l 3))
; return fifth element of list
(defun fifth (l) (index l 4))
; from list of lists creates csv string ; from list of lists creates csv string
@ -61,3 +64,6 @@
rows_str rows_str
)) ))
(defun setq (var val) (define var val))

View File

@ -1,4 +1,4 @@
; (print (make-csv (divi-dates "2021-02-01")))
(defun divi-dates (date-str) (defun divi-dates (date-str)
(do (do
(define curl_cmd (+ "curl -H \"Accept: application/json, text/plain, */*\" -H \"Origin: https://www.nasdaq.com/\" -H \"User-Agent: Mozilla/5.0 (Windows NT 10.0)\" https://api.nasdaq.com/api/calendar/dividends/?date=" date-str " 2>/dev/null")) (define curl_cmd (+ "curl -H \"Accept: application/json, text/plain, */*\" -H \"Origin: https://www.nasdaq.com/\" -H \"User-Agent: Mozilla/5.0 (Windows NT 10.0)\" https://api.nasdaq.com/api/calendar/dividends/?date=" date-str " 2>/dev/null"))
@ -13,20 +13,21 @@
(define rows (index (index calendar_data 1) 1)) (define rows (index (index calendar_data 1) 1))
; (define csv_list '()) ; (define csv_list '())
(define csv_list '("symbol" "ex-date" "pay-date" "div-rate")) (define csv_list '(("symbol" "ex-date" "pay-date" "div-rate")))
(for e rows (if (!= rows '@)
; (("announcement_Date" "01/07/2021") ("companyName" "Itau Unibanco Banco Holding SA") ("dividend_Ex_Date" "02/01/2021") ("dividend_Rate" 0.003) ("indicated_Annual_Dividend" 0.033) ("payment_Date" "03/11/2021") ("record_Date" "02/02/2021") ("symbol" "ITUB")) (for e rows
(define symbol (second (first (filter (lambda (x) (= (first x) "symbol")) e)))) ; (("announcement_Date" "01/07/2021") ("companyName" "Itau Unibanco Banco Holding SA") ("dividend_Ex_Date" "02/01/2021") ("dividend_Rate" 0.003) ("indicated_Annual_Dividend" 0.033) ("payment_Date" "03/11/2021") ("record_Date" "02/02/2021") ("symbol" "ITUB"))
(define divrate (second (first (filter (lambda (x) (= (first x) "dividend_Rate")) e)))) (define symbol (second (first (filter (lambda (x) (= (first x) "symbol")) e))))
(define adate (second (first (filter (lambda (x) (= (first x) "announcement_Date")) e)))) (define divrate (second (first (filter (lambda (x) (= (first x) "dividend_Rate")) e))))
(define name (second (first (filter (lambda (x) (= (first x) "companyName")) e)))) (define adate (second (first (filter (lambda (x) (= (first x) "announcement_Date")) e))))
(define exdate (second (first (filter (lambda (x) (= (first x) "dividend_Ex_Date")) e)))) (define name (second (first (filter (lambda (x) (= (first x) "companyName")) e))))
(define paydate (second (first (filter (lambda (x) (= (first x) "payment_Date")) e)))) (define exdate (second (first (filter (lambda (x) (= (first x) "dividend_Ex_Date")) e))))
(define rdate (second (first (filter (lambda (x) (= (first x) "record_Date")) e)))) (define paydate (second (first (filter (lambda (x) (= (first x) "payment_Date")) e))))
(define rdate (second (first (filter (lambda (x) (= (first x) "record_Date")) e))))
(define csv_list (push csv_list (list symbol exdate paydate divrate))))
'())
(define csv_list (push csv_list (list symbol exdate paydate divrate))))
csv_list csv_list
)) ))
(print (make-csv (divi-dates "2021-02-01")))