You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
(define*
;; function name: hi
;; a is needed
;; b has default argument 32
;; c has default argument "hi"
(hi a (b 32) (c "hi"))
;; just returning the arguments
(list a b c))
(list
(hi 1)
(hi :c 332 :a 3)
(hi 3 2 1))
I'm not sure about the named-arguments, used when calling a function, but allowing default values for parameters seems nice and the syntax is trivial to handle.
The text was updated successfully, but these errors were encountered:
We typically define a function like this:
(set! hello1 (fn* (name)
(print "Hello %s" name)))
Here we say there is a parameter "name" which must be supplied, and that
is later used.
If we instead say that parameters can be lists we can allow the first
value to be the name, and the second a default value if nothing is
actually passed, like so:
(set! hello2 (fn* ( (name "World") )
(print "Hello %s" name)))
These could be used like so:
(hello1 "Steve") ; "Hello Steve"
(hello2 "Steve") ; "Hello Steve"
(hello2) ; "Hello World"
I've not yet experimented with supplying defaults in the non-final
arguments, because that could screw things up. But for simple cases
like the one above it seems to work.
Once complete this will close#130, however I need to add test-cases..
I came across this example, recently:
I'm not sure about the named-arguments, used when calling a function, but allowing default values for parameters seems nice and the syntax is trivial to handle.
The text was updated successfully, but these errors were encountered: