24 lines
600 B
Smalltalk
24 lines
600 B
Smalltalk
|forward reverse composer compounds|
|
|
"commodities"
|
|
Number extend [
|
|
cube [ ^self raisedTo: 3 ]
|
|
].
|
|
Number extend [
|
|
cubeRoot [ ^self raisedTo: (1 / 3) ]
|
|
].
|
|
|
|
forward := #( #cos #sin #cube ).
|
|
reverse := #( #arcCos #arcSin #cubeRoot ).
|
|
|
|
composer := [ :f :g | [ :x | f value: (g value: x) ] ].
|
|
|
|
"let us create composed funcs"
|
|
compounds := OrderedCollection new.
|
|
|
|
1 to: 3 do: [ :i |
|
|
compounds add: ([ :j | composer value: [ :x | x perform: (forward at: j) ]
|
|
value: [ :x | x perform: (reverse at: j) ] ] value: i)
|
|
].
|
|
|
|
compounds do: [ :r | (r value: 0.5) displayNl ].
|