http://homepage1.nifty.com/yand/rhyme.lzh (2003/10/1)
- Rhyme is the Scheme interpreter which was implemented by Ruby.
- It makes to do R5RS based a goal. In other words, it isn't being based on R5RS at present.
- The object of Ruby can be operated in some degree.
How to use
The start-up way
When starting up an interpreter, execute the following command in the directory which is the same as this file.
> ruby -Ks rhyme.rb
When reading and executing a file, execute the following command in the directory which is the same as this file.
> ruby -Ks rhyme.rb [filename]
When wanting to start up by the redundant (verbose) mode, execute the following command in the directory which is the same as this file.
> ruby -d -Ks rhyme.rb
How to use of the interpreter
- The program entry: Either of the following prompt enter the program of Scheme in the displayed condition.
- The program execution: The program which typed in by it is executed when only the following prompt starts a new line in the displayed condition.
- The interpreter ending: The interpreter ends when inputting only 'exit' or 'quit'.
The others
- Rhyme is a case-sensitive in the default. When not wanting to distinguish between the uppercase and the lowercase, set CASE_SENSITIVE in rhyme/rhyme.rb to false.
- When wanting to know what the feature which has supported at present is, see a file below the test directory. The file name corresponds to the chapter of R5RS. Also, to confirm operation, execute the following command. It thinks that it is moving if not displayed with !!ERROR!!.
The immunity from responsibility
We don't bear responsibility to the damage to want to occur using this program about or for it to become, too. However, if it is the bug of the program or one by the specification, it thinks that it wants to do compatible as much as possible for the such thing not to occur since then. To do the being of the opinion contact the following.
Ando, Y. (mailto:a.y@mint.candypark.com)
The license
It supposes that the handling of Rhyme follows Ruby license.
- The optimization of the tail recursion
- The correction of the operation of the macro
- The various procedure implementing
Compatible status
OFIt works.
oFIt works by the limited status.
xFIt doesn't work.
- o quote
- O lambda
- O if
- O set!
- o cond
- O case
- O and
- O or
- O let
- o let *
- o letrec
- O begin
- o do
- x delay
- x quasiquote
- o let-syntax
- x letrec-syntax
- o syntax-rules
- O define
- o define-syntax
- o eqv?
- o eq?
- o equal?
- o number?
- o complex?
- o real?
- o rational?
- o integer?
- x exact?
- x inexact?
- O =
- O <
- O >
- O <=
- O >=
- O zero?
- O positive?
- O negative?
- O odd?
- O even?
- o max
- o min
- O +
- O *
- o -
- o /
- o abs
- o quotient
- o remainder
- o modulo
- o gcd
- o lcm
- o numerator
- o denominator
- o floor
- o ceiling
- o truncate
- o round
- x rationalize
- o exp
- o log
- o sin
- o cos
- o tan
- o asin
- o acos
- x atan
- O sqrt
- O expr
- O make-rectangular
- O make-polar
- O real-part
- O imag-part
- O magnitude
- O angle
- x exact->inexact
- x inexact->exact
- x number->string
- o string->number
- O not
- O boolean?
- O pair?
- O cons
- O car
- O cdr
- O set-car!
- O set-cdr!
- O caar, cadr, ... , cadddr, cddddr
- O null?
- o list?
- o list
- o length
- o append
- o reverse
- o list-tail
- o list-ref
- o memq
- o memv
- o member
- o assq
- o assv
- o assoc
- o symbol?
- o symbol->string
- o string->symbol
- o char?
- o char=?
- o char<?
- o char>?
- o char<=?
- o char>=?
- o char-ci=?
- o char-ci<?
- o char-ci>?
- o char-ci<=?
- o char-ci>=?
- o char-alphabetic?
- o char-numeric?
- o char-whitespace?
- o char-upper-case?
- o char-lower-case?
- o char->integer
- o integer->char
- o char-upcase
- o char-downcase
- o string?
- o make-string
- o string
- o string-length
- o string-ref
- o string-set!
- o string=?
- o string-ci=?
- o string<?
- o string>?
- o string<=?
- o string>=?
- o string-ci<?
- o string-ci>?
- o string-ci<=?
- o string-ci>=?
- o substring
- o string-append
- o string->list
- o list->string
- o string->copy
- o string-fill!
- o vector?
- o make-vector
- o vector
- o vector-length
- o vector-ref
- o vector-set!
- o vector->list
- o list->vector
- o vector-fill!
- o procedure?
- x apply
- x map
- O for-each
- x force
- o call-with-current-continuation
- x values
- x call-with-values
- x dynamic-wind
- O eval
- O scheme-report-environment
- O null-environment
- O interaction-environment
- o call-with-input-file
- o call-with-output-file
- o input-port?
- o output-port?
- o current-input-port
- o current-output-port
- o with-input-from-file
- o with-output-to-file
- o open-input-file
- o open-output-file
- o close-input-port
- o close-output-port
- x read
- o read-char
- o peek-char
- o eof-object?
- x char-ready?
- o write
- O display
- O newline
- o write-char
- o load
- o transcript-on
- o transcript-off
|