mirror of
https://github.com/janet-lang/janet
synced 2024-12-28 09:20:26 +00:00
Update for newer version of janet.
parent
f310d478be
commit
a8f03eb7e7
2
Home.md
2
Home.md
@ -2,5 +2,5 @@ Janet is a dynamic, lightweight programming language with strong functional
|
|||||||
capabilities as well as support for imperative programming. It to be used
|
capabilities as well as support for imperative programming. It to be used
|
||||||
for short lived scripts as well as for building real programs. It can also
|
for short lived scripts as well as for building real programs. It can also
|
||||||
be extended with native code (C modules) for better performance and interfacing with
|
be extended with native code (C modules) for better performance and interfacing with
|
||||||
existing software. Janet takes ideas from Lua, Scheme, Racket, Clojure, Smalltalk, Erlang, and
|
existing software. Janet takes ideas from Lua, Scheme, Racket, Clojure, Smalltalk, Erlang, Arc, and
|
||||||
a whole bunch of other dynamic languages.
|
a whole bunch of other dynamic languages.
|
||||||
|
@ -558,13 +558,13 @@ fiber is in to differentiate errors from return values from user defined signals
|
|||||||
|
|
||||||
To create a fiber, user the `fiber/new` function. The fiber constructor take one or two arguments.
|
To create a fiber, user the `fiber/new` function. The fiber constructor take one or two arguments.
|
||||||
the first, necessary argument is the function that the fiber will execute. This function must accept
|
the first, necessary argument is the function that the fiber will execute. This function must accept
|
||||||
an arity of one. The next optional argument is a collection of flags checking what kinds of
|
an arity of zero. The next optional argument is a collection of flags checking what kinds of
|
||||||
signals to trap and return via `resume`. This is useful so
|
signals to trap and return via `resume`. This is useful so
|
||||||
the programmer does not need to handle all different kinds of signals from a fiber. Any untrapped signals
|
the programmer does not need to handle all different kinds of signals from a fiber. Any untrapped signals
|
||||||
are simply propagated to the next fiber.
|
are simply propagated to the next fiber.
|
||||||
|
|
||||||
```lisp
|
```lisp
|
||||||
(def f (fiber/new (fn @[]
|
(def f (fiber/new (fn []
|
||||||
(yield 1)
|
(yield 1)
|
||||||
(yield 2)
|
(yield 2)
|
||||||
(yield 3)
|
(yield 3)
|
||||||
@ -595,7 +595,7 @@ Besides being used as coroutines, fibers can be used to implement error handling
|
|||||||
(print "never gets here"))
|
(print "never gets here"))
|
||||||
|
|
||||||
# Use the :e flag to only trap errors.
|
# Use the :e flag to only trap errors.
|
||||||
(def f (fiber.new my-function-that-errors :e))
|
(def f (fiber/new my-function-that-errors :e))
|
||||||
(def result (resume f))
|
(def result (resume f))
|
||||||
(if (= (fiber/status f) :error)
|
(if (= (fiber/status f) :error)
|
||||||
(print "result contains the error")
|
(print "result contains the error")
|
||||||
|
Loading…
Reference in New Issue
Block a user