val f
: ( String
=> Any
) = s
=> { val n
= ( _: String
) filter
( _ .
isDigit ) toInt
; ( Seq
( "" ) .
tail /
: s.
split ( "," ) .
tail ) ( ( a,
& ) => & match { case
& if
& contains
"v" => a
: +
"x/=" +n
( & ) case& if& contains "d" => a: +"x+=" +n( & )
case& if& contains "y" => a: +"x*=" +n( & )
case& if& contains "f" => a: +"x=" +n( & ) +"-x"
case& if& contains "s" => a: +"x-=" +n( & )
case p
=> a
: +a.
last } ) mkString
( "var x=readInt;" ,
";" ,
";print(x)" ) }
println( f( "think of a number" ) )
println( f( "Think of a number, divide by 5, subtract from 9." ) )
println( f( "Think of a number, add 5, add 10, multiply by 2, subtract 15, repeat, divide by 2." ) )
println( f( "Think of a number, subtract 1, repeat, repeat." ) )
}
b2JqZWN0IE1haW4gZXh0ZW5kcyBBcHAgewoKdmFsIGY6KFN0cmluZz0+QW55KT1zPT57dmFsIG49KF86U3RyaW5nKWZpbHRlcihfLmlzRGlnaXQpdG9JbnQ7KFNlcSgiIikudGFpbC86cy5zcGxpdCgiLCIpLnRhaWwpKChhLCYpPT4gJm1hdGNoe2Nhc2UmaWYmY29udGFpbnMgInYiPT5hOisieC89IituKCYpCmNhc2UmaWYmY29udGFpbnMgImQiPT5hOisieCs9IituKCYpCmNhc2UmaWYmY29udGFpbnMgInkiPT5hOisieCo9IituKCYpCmNhc2UmaWYmY29udGFpbnMgImYiPT5hOisieD0iK24oJikrIi14IgpjYXNlJmlmJmNvbnRhaW5zICJzIj0+YTorIngtPSIrbigmKQpjYXNlIHA9PmE6K2EubGFzdH0pbWtTdHJpbmcoInZhciB4PXJlYWRJbnQ7IiwiOyIsIjtwcmludCh4KSIpfQoKcHJpbnRsbihmKCJ0aGluayBvZiBhIG51bWJlciIpKQpwcmludGxuKGYoIlRoaW5rIG9mIGEgbnVtYmVyLCBkaXZpZGUgYnkgNSwgc3VidHJhY3QgZnJvbSA5LiIpKQpwcmludGxuKGYoIlRoaW5rIG9mIGEgbnVtYmVyLCBhZGQgNSwgYWRkIDEwLCBtdWx0aXBseSBieSAyLCBzdWJ0cmFjdCAxNSwgcmVwZWF0LCBkaXZpZGUgYnkgMi4iKSkKcHJpbnRsbihmKCJUaGluayBvZiBhIG51bWJlciwgc3VidHJhY3QgMSwgcmVwZWF0LCByZXBlYXQuIikpCgoKfQ==