Skip to Content
Learn Red ? Fundamentals of Red
book

Learn Red ? Fundamentals of Red

by Ivo Balbaert
May 2018
Beginner content levelBeginner
252 pages
6h 19m
English
Packt Publishing
Content preview from Learn Red ? Fundamentals of Red

Refinements

User-defined functions can also have refinements, which are like switches that can be optionally specified when calling a function. In the following example, we define a sum function with a /avg refinement:

sum: func [arg1 arg2 /avg][    either avg [arg1 + arg2 / 2][arg1 + arg2]]sum 3 5       ;== 8sum/avg 3 5   ;== 4
A refinement is tested as a Boolean value with the same name, but without the /. Also, don't leave a space between the function name and the refinement when calling sum/avg

A refinement can also have a value, as shown in the following example:

div-sum: func [arg1 arg2 /div n][    either div [arg1 + arg2 / n][arg1 + arg2]]div-sum 3 5             ;== 8div-sum/div 3 5 4       ;== 2
Note that the refinement value follows the parameters. Better ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

How I Built a Personal Board of Directors With GenAI

How I Built a Personal Board of Directors With GenAI

Vipin Gupta
How to Become a Game-Changing Leader

How to Become a Game-Changing Leader

Douglas A. Ready, Alan Mulally
Why AI Demands a New Breed of Leaders

Why AI Demands a New Breed of Leaders

Faisal Hoque, Thomas Davenport, Erik Nelson

Publisher Resources

ISBN: 9781789130706Supplemental Content