Named parameters: Difference between revisions
Content added Content deleted
(jq) |
(+ forth) |
||
Line 414: | Line 414: | ||
? printName(["first" => "John", "last" => "Doe"]) |
? printName(["first" => "John", "last" => "Doe"]) |
||
Doe, John</lang> |
Doe, John</lang> |
||
=={{header|Forth}}== |
|||
As with many of the other languages here, Forth does not have named parameters, but it does have practices that arise in situations where a Forth programmer might want named parameters. In Forth's case, these practices also arise when a more natural control language is wanted (e.g., LEFT ARM 36 DEGREES LIFT) or when a word would otherwise take excessively many arguments. |
|||
Two regrettably unnatural examples: |
|||
{{works with|Gforth}} |
|||
<lang forth>256 buffer: first-name |
|||
256 buffer: last-name |
|||
: is ( a "name" -- ) parse-name rot place ; |
|||
: greet ( -- ) |
|||
cr ." Hello, " first-name count type space last-name count type ." !" ; |
|||
first-name is Bob last-name is Hall greet |
|||
require mini-oof2.fs |
|||
require string.fs |
|||
object class |
|||
field: given-name |
|||
field: surname |
|||
end-class Person |
|||
: hiya ( -- ) |
|||
cr ." Hiya, " given-name $. space surname $. ." !" ; |
|||
Person new >o s" Bob" given-name $! s" Hall" surname $! hiya o></lang> |
|||
{{out}}<pre>Hello, Bob Hall! |
|||
Hiya, Bob Hall!</pre> |
|||
=={{header|Fortran}}== |
=={{header|Fortran}}== |