Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
|
|
@ -0,0 +1,19 @@
|
|||
def evaluate( expr ) =
|
||||
stack = []
|
||||
|
||||
for token <- expr.split( '''\s+''' )
|
||||
case number( token )
|
||||
Some( n ) ->
|
||||
stack = n : stack
|
||||
println( "push $token: ${stack.reversed()}" )
|
||||
None ->
|
||||
case {'+': (+), '-': (-), '*': (*), '/': (/), '^': (^)}.>get( token )
|
||||
Some( op ) ->
|
||||
stack = op( stack.tail().head(), stack.head() ) : stack.tail().tail()
|
||||
println( "perform $token: ${stack.reversed()}" )
|
||||
None -> error( "unrecognized operator '$token'" )
|
||||
|
||||
stack.head()
|
||||
|
||||
res = evaluate( '3 4 2 * 1 5 - 2 3 ^ ^ / +' )
|
||||
println( res + (if res is Integer then '' else " or ${float(res)}") )
|
||||
Loading…
Add table
Add a link
Reference in a new issue