(defun greet (callback)
(set extra_message "\nWelcome to oxide-lisp!\n")
(callback "John")
)
(greet (lambda (name)
(println (str::concat "Hello" " " name "!!" extra_message))))
(set pretty-print (lambda (@rest)
(println (str::join (map (lambda (x) (json::stringify x)) @rest) " "))
))
(pretty-print
(filter
(lambda (num) (%? num 2))
(@:: 1 2 3 4 5)
))
(pretty-print
(reduce
(lambda (acc item key)
(#::> acc key (* item 1000)))
(#::
"jack" 28
"john" 28
"eve" 35
)
(#::)
))
(pretty-print (reverse (@:: 1 2 3 4)))
(set req (#::
"request" (#::
"headers" (#::
"cookie" "at=10328yrji90o"
"content-type" "application/json"
"host" "example.com"
)
"ip" (@:: 10 0 0 12)
)
))
(for-each
(lambda (key val)
(println " `-- " key val)
)
(#::<<
req
(str::split "request.headers" ".")
))
(defun call-variadic (data @rest)
(println "data: " data "name opt: " (assoc-opt @rest :name))
)
(call-variadic 1 :new-line true :space true :name :Peter)
(println (str::join (map (lambda (i) (to-string i)) (:ip (:request req))) :.))
(defun log (@rest)
(let
(
(level (assoc-opt @rest :level "INFO"))
(msg (assoc-opt @rest :msg))
(err (assoc-opt @rest :err))
)
(println (str::join (@:: "level=" level (if err (str::concat " err=" err) "") " msg=" (json::stringify msg))))
)
)
(log :msg "Sample log")