Sha256: 186de8cbe66462e168586f4adf89e40bdaeb3a96bbc6ec20375294f09c8f460c
Contents?: true
Size: 1.23 KB
Versions: 10
Compression:
Stored size: 1.23 KB
Contents
# Most of this long script is mere presentation. # All you really need to do is push two integers onto the stack # and then execute add, sub, mul, idiv, or pow. $ClearScreen { # Using ANSI terminal control `\e[2J\e[1;1H' print flush } bind def $Say { # string Say - `\n' cat print flush } bind def $ShowPreamble { `To show how integer arithmetic in done in Onyx,' Say `we\'ll use two numbers of your choice, which' Say `we\'ll call A and B.\n' Say } bind def $Prompt { # stack: string -- stdout exch write pop flush } def $GetInt { # stack: name -- integer dup cvs `Enter integer ' exch cat `: ' cat Prompt stdin readline pop cvx eval def } bind def $Template { # arithmetic_operator_name label_string Template result_string A cvs ` ' B cvs ` ' 5 ncat over cvs ` gives ' 3 ncat exch A B dn cvx eval cvs `.' 3 ncat Say } bind def $ShowResults { $add `Addition: ' Template $sub `Subtraction: ' Template $mul `Multiplication: ' Template $idiv `Division: ' Template `Note that the result of integer division is rounded toward zero.' Say $pow `Exponentiation: ' Template `Note that the result of raising to a negative power always gives a real number.' Say } bind def ClearScreen ShowPreamble $A GetInt $B GetInt ShowResults
Version data entries
10 entries across 7 versions & 1 rubygems