RosettaCodeData/Task/Function-composition/Red/function-composition.red

19 lines
511 B
Text
Raw Permalink Normal View History

2026-04-30 12:34:36 -04:00
Red [ "Compose Two or Any Number of Functions - Hinjolicious" ]
; to show the codes
demo: function [s b] [print ["^/==" s "==^/"] print mold/only b do b]
demo "Compose two functions" [
comp-func: function ['f 'g] [function [x] compose [(get f) (get g) x]]
sin-cos: comp-func sin cos
print sin-cos 0.5
]
demo "Compose any number of functions" [
comp-funcs: function [ff] [
function [x] compose append collect [foreach e ff [keep (get e)]] 'x
]
log-sin-cos: comp-funcs [log-e sin cos]
print log-sin-cos 0.5
]