Skip to content

a from-scratch implementation of a schemish interpreter (why, again?)

Notifications You must be signed in to change notification settings

willkelly/minischeme

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

minischeme

Build Status

Playing around with building a r5rs-ish scheme. In addition to being a stupid re-implementation of the wheel, it also suffers from not being very round.

That said, this is general status toward a r[57]ish scheme:

equivalence predicates

  • eqv?
  • eq?
  • equal?

numeric

  • integer?

  • float?

  • exact?

  • inexact?

  • zero? (library)

  • positive? (library)

  • negative? (library)

  • odd? (library)

  • even? (library)

  • max (library)

  • min (library)

  • >

  • <

  • <=

  • >=

  • =

  • +

  • *

  • -

  • /

  • abs (library)

  • quotient

  • remainder

  • modulo

  • gcd (library)

  • lcm (library)

  • floor

  • ceiling

  • truncate

  • round

  • exp

  • log

  • sin

  • cos

  • tan

  • asin

  • acos

  • atan

  • sqrt

  • expt

  • number->string

  • string->number

boolean

  • not
  • boolean?

pairs and lists

  • pair?
  • cons
  • car
  • cdr
  • set-car!
  • set-cdr
  • caar/cadr -- cdddar/cddddr (library)
  • null?
  • list? (library?)
  • list (library)
  • length (library?)
  • append (library)
  • reverse (library)
  • tail-list (library)
  • list-ref (library)
  • memq (library)
  • memv (library)
  • member (library)
  • assq (library)
  • assv (library)
  • assoc (library)

symbols

  • symbol?
  • symbol->string
  • string->symbol

chars

  • char?

  • char=?

  • char<?

  • char>?

  • char<=?

  • char>=?

  • char-ci=? (library)

  • char-ci<? (library)

  • char-ci>? (library)

  • char-ci<=? (library)

  • char-ci>=? (library)

  • char-alphabetic? (library)

  • char-numeric? (library)

  • char-whitespace? (library)

  • char-upper-case? (library)

  • char-lower-case? (library)

  • char->integer

  • integer->char

  • char-upcase (library)

  • char-downcase (library)

strings

  • string?

  • make-string

  • string (library)

  • string-length

  • string-ref

  • string-set!

  • string=? (library)

  • string-ci=? (library)

  • string<? (library)

  • string>? (library)

  • string<=? (library)

  • string>=? (library)

  • string-ci<? (library)

  • string-ci>? (library)

  • string-ci<=? (library)

  • string-ci>=? (library)

  • substring (library)

  • string-append (library)

  • string->list (library)

  • list->string (library)

  • string-copy (library)

  • string-fill! (library)

control

  • procedure?
  • apply
  • map (library)
  • for-each (library)
  • force (library)
  • call-with-current-continuation
  • values
  • call-with-values
  • dynamic-wind

eval

  • eval
  • scheme-report-environment
  • null-environment
  • interaction-environment

ports

  • call-with-input-file (library)
  • call-with-output-file (library)
  • input-port?
  • output-port?
  • current-input-port
  • with-input-from-file
  • with-output-to-file
  • open-input-file
  • open-output-file
  • close-input-port
  • close-output-port

input

  • read
  • read-char
  • peek-char
  • eof-object?
  • char-ready?

output

  • write (machine-readable)
  • display (human readable) [ not quite right... ]
  • newline
  • write-char

conditional

  • and (library)
  • or (library)
  • if

system interface

  • load
  • transcript-on
  • transcript-off

SRFI-69

  • make-hash-table

  • hash-table?

  • alist->hash-table

  • hash-table-equivalence-function

  • hash-table-hash-function

  • hash-table-ref

  • hash-table-ref/default

  • hash-table-set!

  • hash-table-delete!

  • hash-table-exists?

  • hash-table-update!

  • hash-table-update!/default

  • hash-table-size

  • hash-table-keys

  • hash-table-values

  • hash-table-walk

  • hash-table-fold

  • hash-table->alist

  • hash-table-copy

  • hash-table-merge!

  • hash

  • string-hash

  • string-ci-hash

  • hash-by-identity

About

a from-scratch implementation of a schemish interpreter (why, again?)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 94.3%
  • Scheme 4.7%
  • Shell 1.0%