Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Turn the toy lisp into a complete R4RS implementation #22

Open
33 tasks
fitzgen opened this issue Jul 2, 2017 · 0 comments
Open
33 tasks

Turn the toy lisp into a complete R4RS implementation #22

fitzgen opened this issue Jul 2, 2017 · 0 comments

Comments

@fitzgen
Copy link
Collaborator

fitzgen commented Jul 2, 2017

why not.


(checklist by @jorendorff)

Things we already sort of do, but sloppily:

  • check we correctly parse identifiers
  • check behavior of eqv? and equal?

Unsupported features:

  • delay and force
  • remaining caaaar functions not already covered in prelude.scm
  • the numeric tower:
    • integers
      • big integer values, parsing, and write support
      • big integer support in generic builtins, like +
      • radix prefixes (#b, #o, #d, #x)
      • exactness prefixes (#i, #e)
      • gcd, lcm
    • flonums
      • floating-point number values, parsing, and write support
      • scientific notation (1.0e9)
      • exponent markers that indicate floating-point precision (s, f, d, l)
      • support in generic builtins, like +
      • exact? and inexact?, integer?
      • floor, ceiling, truncate, round, exp, log, sin, cos, tan, asin, acos, atan, sqrt, expt
    • exact rational numbers (3/4)
      • values, parsing, and write support
      • support in generic builtins
      • rational?
      • rationalize
    • complex numbers (3+4i, -i)
      • values, parsing, and write support
      • support in generic builtins
      • complex?, real?
      • make-rectangular, make-polar, real-part, imag-part, magnitude, angle
    • exact->inexact, inexact->exact
    • division /
    • string->number
  • char->integer, integer->char
  • Mutable strings: make-string, string-set! (ew), string-copy, string-fill!
  • string-ci=? and other comparison procs
  • substring
  • with-input-from-file, with-output-to-file
  • char-ready? (This is basically impossible to implement for us, so ... hmm. Always return true, I guess.)
  • transcript-on, transcript-off
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant