Intlib logo InteLibScheme



InteLib Scheme is a dialect of SchemeLanguage supported by InteLib since the release 0.5.83; actually, success of its implementation was the main reason to reimplement the Lisp part of the library and therefore produce InteLib 0.6.00.

The interpreter is implemented in such a way that there's no real problem (besides the amount of the work to be done) to make it standard-compliant, at least to the level of r5rs (see RevisedFiveReportOnScheme). The new edition of the standard, named r6rs (see RevisedSixReportOnScheme), has recently been ratified, but it would be harder to implement it [well, I'd even say the new standard is a complete and undoubtful madness, but I realize many people will disagree -- avst]

The most technically hard problem to be solved is the flexible system of macros, or user syntax definitions, which is a part of Scheme. As of now, InteLib doesn't support it at all.

Anyway, currently the InteLibScheme misses lots of functions mentioned in r5rs. Besides the absense of many functions, there are the following differences with the standard:

Besides that, the following doesn't conflict with r5rs but can perhaps be disliked by experienced Schemers:

Also, there are some extensions, the most visible of which is the form SETF!, well-known to Common Lisp people. It is not implemented that ugly way as Common Lisp requires, though. Instead, some functions (generally speaking, these which return a part of an existing expression, such as CAR, CDR, ARRAY-REF etc) are considered location-capable, or setf-capable. Depending on the state of the current continuation, they either simply return the desired value, or return an assignable location, so that SETF! can work.

Besides that, there are:

Take a look at the InteLibSchemeToDo to get the basic idea on what's missing.

NB: YES, it does support call/cc. Don't ask me this question again please.

 

InteLibWiki PageList RecentChanges PageHistory