Amb: Difference between revisions
Content deleted Content added
Thundergnat (talk | contribs) m →{{header|Ring}}: Remove vanity tags |
|||
Line 1,065: | Line 1,065: | ||
import extensions'routines. |
import extensions'routines. |
||
joinable = ( |
joinable(former,later) = (former[former length - 1] == later[0]). |
||
dispatcher = |
dispatcher = |
||
{ |
{ |
||
eval(object |
eval(object a, Func2 f) |
||
[ |
[ |
||
^ |
^ f(a[0],a[1]). |
||
] |
] |
||
eval(object |
eval(object a, Func3 f) |
||
[ |
[ |
||
^ |
^ f(a[0], a[1],a[2]). |
||
] |
] |
||
eval(object |
eval(object a, Func4 f) |
||
[ |
[ |
||
^ |
^ f(a[0],a[1],a[2],a[3]). |
||
] |
] |
||
eval(object |
eval(object a, Func5 f) |
||
[ |
[ |
||
^ |
^ f(a[0],a[1],a[2],a[3],a[4]). |
||
] |
] |
||
}. |
}. |
||
Line 1,095: | Line 1,094: | ||
object theCombinator. |
object theCombinator. |
||
constructor new(V<object> |
generic constructor new(V<object> args) |
||
[ |
[ |
||
theCombinator := SequentialEnumerator new( |
theCombinator := SequentialEnumerator new(args). |
||
] |
] |
||
seek : |
seek : cond |
||
[ |
[ |
||
theCombinator reset. |
theCombinator reset. |
||
theCombinator seekEach(:v)(dispatcher eval(v, |
theCombinator seekEach(:v)(dispatcher eval(v,cond)) |
||
] |
] |
||
Line 1,118: | Line 1,117: | ||
ambOperator = |
ambOperator = |
||
{ |
{ |
||
generic for(V<object> |
generic for(V<object> args) |
||
= AmbValueCollection new( |
= AmbValueCollection new(args). |
||
}. |
}. |
||
public program |
public program |
||
[ |
[ |
||
try(ambOperator |
try(ambOperator |
||
Line 1,135: | Line 1,134: | ||
}. |
}. |
||
console readChar |
console readChar |
||
] |
]</lang> |
||
{{out}} |
{{out}} |
||
<pre> |
<pre> |