Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,22 @@
|
|||
m@(Method traits) ** n@(Method traits)
|
||||
"Answers a new Method whose effect is that of calling the first method
|
||||
on the results of the second method applied to whatever arguments are passed.
|
||||
This composition is associative, i.e. (a ** b) ** c = a ** (b ** c).
|
||||
When the second method, n, does not take a *rest option or the first takes
|
||||
more than one input, then the output is chunked into groups for its
|
||||
consumption. E.g.:
|
||||
#; `er ** #; `er applyTo: {'a'. 'b'. 'c'. 'd'} => 'abcd'
|
||||
#; `er ** #name `er applyTo: {#a. #/}. => 'a/'"
|
||||
[
|
||||
n acceptsAdditionalArguments \/ [m arity = 1]
|
||||
ifTrue:
|
||||
[[| *args | m applyTo: {n applyTo: args}]]
|
||||
ifFalse:
|
||||
[[| *args |
|
||||
m applyTo:
|
||||
([| :stream |
|
||||
args do: [| *each | stream nextPut: (n applyTo: each)]
|
||||
inGroupsOf: n arity] writingAs: {})]]
|
||||
].
|
||||
|
||||
#**`er asMethod: #compose: on: {Method traits. Method traits}.
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
n@(Number traits) cubed [n raisedTo: 3].
|
||||
n@(Number traits) cubeRoot [n raisedTo: 1 / 3].
|
||||
define: #forward -> {#cos `er. #sin `er. #cube `er}.
|
||||
define: #reverse -> {#arcCos `er. #arcSin `er. #cubeRoot `er}.
|
||||
|
||||
define: #composedMethods -> (forward with: reverse collect: #compose: `er).
|
||||
composedMethods do: [| :m | inform: (m applyWith: 0.5)].
|
||||
Loading…
Add table
Add a link
Reference in a new issue