none - iamgio/quarkdown GitHub Wiki
None is a particular value, which represents nothing or emptiness (similarly to null
in many programming languages).
Functions can return it, and it's also used as a placeholder for optional parameters.
Function | Description | Return type |
---|---|---|
.none |
Creates an empty value. | none |
.isnone {value} |
Checks whether value is none . |
Boolean |
.otherwise {value} {fallback} |
Returns value if it is not none , fallback otherwise.Works best with function call chaining. |
Type of either value or fallback
|
.ifpresent {value} {lambda} |
If value is not none , maps it to a new value according to the lambda. If none , returns none .Works best with function call chaining. |
Type returned by lambda , or none
|
.takeif {value} {lambda} |
Returns value if the boolean-returning lambda is accepted on value . Returns none otherwise.Works best with function call chaining. |
Type of value , or none
|
Hi! I'm .name::otherwise {unnamed}
If
name
isJohn
: Hi! I'm John
If it isnone
: Hi! I'm unnamed
.num::takeif {@lambda x: .x::equals {5}}
If
num
is 5: 5
Otherwise: None
Confused about
@lambda
? It begins a parametric inlineLambda
. Check its page for further details.
.num::takeif {@lambda x: .x::iseven}::ifpresent {Even}::otherwise {Odd}
If
num
is even: Even
Otherwise: Odd
.x::ifpresent {@lambda Yes, .1 is present}::otherwise {Not present}
If
x
issomething
: Yes, something is present
If it isnone
: Not present
Here, the lambda parameter is implicit and accessed by position.