mirror of
https://github.com/janet-lang/janet
synced 2024-11-24 17:27:18 +00:00
Update core.janet
This commit is contained in:
parent
ac9935c95f
commit
55c091e898
@ -741,7 +741,7 @@
|
||||
|
||||
(defmacro ->
|
||||
"Threading macro. Inserts x as the second value in the first form
|
||||
in form, and inserts the modified firsts form into the second form
|
||||
in forms, and inserts the modified first form into the second form
|
||||
in the same manner, and so on. Useful for expressing pipelines of data."
|
||||
[x & forms]
|
||||
(defn fop [last n]
|
||||
@ -754,7 +754,7 @@
|
||||
|
||||
(defmacro ->>
|
||||
"Threading macro. Inserts x as the last value in the first form
|
||||
in form, and inserts the modified firsts form into the second form
|
||||
in forms, and inserts the modified first form into the second form
|
||||
in the same manner, and so on. Useful for expressing pipelines of data."
|
||||
[x & forms]
|
||||
(defn fop [last n]
|
||||
@ -765,6 +765,38 @@
|
||||
(tuple/slice parts 0))
|
||||
(reduce fop x forms))
|
||||
|
||||
(defmacro -?>
|
||||
"Short circuit threading macro. Inserts x as the last value in the first form
|
||||
in forms, and inserts the modified first form into the second form
|
||||
in the same manner, and so on. The pipeline will return nil
|
||||
if an intermediate value is nil.
|
||||
Useful for expressing pipelines of data."
|
||||
[x & forms]
|
||||
(defn fop [last n]
|
||||
(def [h t] (if (= :tuple (type n))
|
||||
[tuple n.0 (array/slice n 1)]
|
||||
[tuple n @[]]))
|
||||
(def sym (gensym))
|
||||
(def parts (array/concat @[h sym] t))
|
||||
~(let [,sym ,last] (if ,sym ,(tuple/slice parts 0))))
|
||||
(reduce fop x forms))
|
||||
|
||||
(defmacro -?>>
|
||||
"Threading macro. Inserts x as the last value in the first form
|
||||
in forms, and inserts the modified first form into the second form
|
||||
in the same manner, and so on. The pipeline will return nil
|
||||
if an intermediate value is nil.
|
||||
Useful for expressing pipelines of data."
|
||||
[x & forms]
|
||||
(defn fop [last n]
|
||||
(def [h t] (if (= :tuple (type n))
|
||||
[tuple n.0 (array/slice n 1)]
|
||||
[tuple n @[]]))
|
||||
(def sym (gensym))
|
||||
(def parts (array/concat @[h] t @[sym]))
|
||||
~(let [,sym ,last] (if ,sym ,(tuple/slice parts 0))))
|
||||
(reduce fop x forms))
|
||||
|
||||
(defn partial
|
||||
"Partial function application."
|
||||
[f & more]
|
||||
|
@ -386,7 +386,7 @@ static const JanetReg cfuns[] = {
|
||||
"(fiber/new func [,sigmask])\n\n"
|
||||
"Create a new fiber with function body func. Can optionally "
|
||||
"take a set of signals to block from the current parent fiber "
|
||||
"when called. The mask is specified as symbol where each character "
|
||||
"when called. The mask is specified as a symbol where each character "
|
||||
"is used to indicate a signal to block. The default sigmask is :y. "
|
||||
"For example, \n\n"
|
||||
"\t(fiber/new myfun :e123)\n\n"
|
||||
|
Loading…
Reference in New Issue
Block a user