Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

リスプ-1。

Name: Anonymous 2012-03-27 14:22

Whats your favorite Scheme standard nowadays, /prog/? Are you coding from a standard or implementation specific?

        1975 "Scheme: an interpreter for extended lambda calculus"
3 yrs   1978 RRS
     << 1984 SICP >>
7 yrs   1985 RRRS
1 yr    1986 R3RS
5 yrs   1991 R4RS
     << 1996 SICP 2nd E >>
7 yrs   1998 R5RS
     << 2001 HtDP >>
9 yrs   2007 R6RS
5 yrs   2012 R7RS-SmL-draft6

Name: Anonymous 2012-03-27 17:59

>>7
Could you elaborate on what mistakes of R5RS you mean? And what kinds of records would you prefer?
* Lack of modules. Not really a mistake, there's still no One True Module System today, I doubt there was one in 1998.

* syntax-rules is perfect for trivial things, but it doesn't scale up well when things get complex. Again, not R5RS' fault, good, powerful and sane hygienic macros are a recent thing (And by that, I mean syntax-parse)

* set! & co. returning an unspecified value.
This is why all Schemes need a special #<void>/#<unspecified> value. The spec should really say they return unspecified values, such that they can also return 0 values, which is the sane thing to do.
This is actually a mistake inherited from R4RS, which had no multiple values, so it needed the ``unspecified'' value. R5RS introduced multiple values, but didn't lift this restriction.
Of course, set! can just return the previous/new value of the set!ed variable, but there's not meaningful return value for when, display, for-each, etc.
Why do I care so much about this? Because it's a pointless and stupid restriction.

* call/cc over control0+prompt. Not R5RS fault.

* Lack of user-defined data structures.
R7RS had a good proposalhere it is: http://trac.sacrideo.us/wg/wiki/RecordsGleckler for a forward-compatible (i.e., extensible without breaking code) syntactical records system, backed by a procedural interface, like R6RS records without the bloat.
I personally prefer ADTs over records, but I can't imagine using them in a Lisp.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List