Jump to content

Talk:Scheme (programming language)

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Pyrotec (talk | contribs) at 20:16, 11 May 2010 (GA Not awarded). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
WikiProject iconComputing: CompSci B‑class
WikiProject iconThis article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
BThis article has been rated as B-class on Wikipedia's content assessment scale.
???This article has not yet received a rating on the project's importance scale.
Taskforce icon
This article is supported by WikiProject Computer science (assessed as Mid-importance).
Things you can help WikiProject Computer science with:

Former good articleScheme (programming language) was one of the Engineering and technology good articles, but it has been removed from the list. There are suggestions below for improving the article to meet the good article criteria. Once these issues have been addressed, the article can be renominated. Editors may also seek a reassessment of the decision if they believe there was a mistake.
Article milestones
DateProcessResult
June 20, 2006Peer reviewReviewed
June 24, 2006Good article nomineeListed
December 2, 2008Good article reassessmentDelisted
Current status: Delisted good article

Comments

"Each comment is preceded by a semicolon (;) and extends for the rest of the line. Some implementations allow comments to span multiple lines by wrapping them with a #|...|# (possibly nested). Other implementations allow an entire s-expression to be commented out by prepending it with #;.[7] These two comment forms are included in the R6RS."

Three kinds of comments are described, but the last sentence mention only two forms. I don't know which form are referenced. Could anybody make it clearer please ? Halladba (talk) 22:22, 1 December 2008 (UTC)[reply]

the last two must be the new ones from R6RS because R5RS only has the (;) whole-line comments. --MarSch (talk) 16:30, 20 July 2009 (UTC)[reply]

Used on Mars rover

I believe I heard at MIT that Scheme was used on one of the Mars rovers. Ten points to anyone who can find a reliable reference. 8) -- Beland (talk) 00:43, 18 July 2009 (UTC)[reply]

Expansion needed

This article has been a mess for some time, and I'm planning an expansion, with possibly a rewrite of much of the article.

Some recent developments in Scheme standardization should be covered (see http://scheme-reports.org/). R6RS has divided Schemers more than any other event in the history of the language, and the Scheme Steering Committee has proposed that two Scheme versions should be specified: a small language more akin to R5RS, and a larger language closer to R6RS.

Meanwhile the coverage of key concepts is poorly handled. The following key language features need to be covered correctly:

  • Continuations
  • Hygienic macros
  • Multiple values
  • Numeric tower
  • Proper tail calls

The article should integrate with lisp (programming language) so that basic lisp concepts covered adequately in that article (lists, consing, etc) are not dwelt on here.

The SRFI process should be covered in more depth.

The Steering Committee recently remarked that "Scheme has the unhappy distinction of being the world's most unportable programming language" [1], and this undeniable fact isn't really covered here at all. Their point is that if you want to write in Scheme, you have to choose a particular implementation, and having done that you will find that most of the software you write for that implementation will not run unaltered on other implementations. --TS 03:42, 13 October 2009 (UTC)[reply]

Language elements

It's hard to avoid the temptation to turn an encyclopedia article on a programming language into a miniature tutorial for the language. The "Language elements" section is messy and some parts of it need to be rewritten and other parts need to be incorporated elsewhere--as I have already done with some sections. --TS 16:09, 14 October 2009 (UTC)[reply]

Disney World

I've removed the following for now:

Chez Scheme has been used at Disney World in Florida for controlling virtual rides.

The citation given for this was "Kent Dybvig, invited to talk at the International Conference on Functional Programming, 2006." We need better sourcing than that. --TS 19:06, 20 October 2009 (UTC)[reply]

Stuff removed from Boolean data type article

The following section was removed from the article Boolean data type:
begin removed text



Scheme has two special symbols #t and #f which represent the logical values of true and false respectively. However, any non-#f value is interpreted as true. Note that unlike Lisp, nil or '(), the empty list, is separate from #f in Scheme, and therefore is considered true.



end removed text
Is there a place for this text in the Scheme-related articles? Perhaps in the Wikibook? Thanks, and all the best, --Jorge Stolfi (talk) 00:08, 31 December 2009 (UTC)[reply]

Thanks for this. I think we already cover it all in the present article, but it might be useful for the book (which was rather moribund last time I checked). --TS 00:10, 31 December 2009 (UTC)[reply]

Forth

I've reverted this edit which was based on an opinion stated in the edit summary: "Forth is even easier to implement, and has as much power from further readily available extensions."

This isn't because I want to engage in a debate on the relative power of Forth and Scheme (that isn't what we do here at Wikipedia) but because I think it's bad form to insert personal opinion into articles. For more on what is meant by "power" in the context of Scheme and other Lisps, read the "Fundamental design features" section. Any language may be augmented to contain these features, but every standard-conforming implementation of Scheme provides them without the need for augmentation. --TS 17:57, 1 April 2010 (UTC)[reply]

I've changed the word "power" to the wikilinked phrase expressive power, This refers to the readiness with which complex data and control structures can be expressed in Scheme. --TS 18:07, 1 April 2010 (UTC)[reply]

"Review of language syntax" is not about syntax

"Review of language syntax" section lists standard forms and procedures, not the lexical or syntactic structure of the textual form. So it seems to be a misnomer. Can anyone think of a better title, so it would match the content of that section? MagV (talk) 12:08, 9 April 2010 (UTC)[reply]

Yes, there frankly isn't a lot of "syntax" in Lisp! Perhaps "Review of standard forms and procedures" would be better. I might also become convinced that the entire section could be removed or rewritten--I think I need to spend some time examining the structure of articles on similar subjects such as Common Lisp.
There is also the problem that this article is heavily slanted towards the still-dominant R5RS standard, and this may well change over time. For now I'm happy to continue describing R5RS and noting R6RS differences (which we don't really do a very good job of yet). If R6RS implementations, and uses of R6RS, become more popular, that will have to change. In some ways R6RS defines such a different kind of language that it may merit an entire separate article, which may or may not in time become the default article for "Scheme (programming language)". R6RS aims to be far more than the "minimalist" language described here. --TS 13:44, 10 April 2010 (UTC)[reply]
I'm down with "Review of standard forms and procedures". A rewrite is also good, since a list of standard bindings is not that useful by itself.
For the actual syntax, a pointer to s-expression with a description of differences (e.g. vectors) would be good.
For R5RS-ness, "Distinguishing features" should list features common among all standards/implementations, and then note differences. R5RS is the base for many common features, so it's OK to describe them from R5RS point of view. But then there are common features which R5RS does not have (e.g. a module system): those should be described as well, but not from R5RS point of view (obviously).
Finally, I don't think we need a separate R6RS article (too many common themes), but a section devoted to each standard would be good. Such section can say something about how and when it was accepted, and then list everything that does not fit "Distinguishing features". As a bonus, we'll be able to wikify all the "R5RS" across the Wikipedia to point to the relevant section, not the generic Scheme article.
-- MagV (talk) 15:17, 10 April 2010 (UTC)[reply]

GA Review

This review is transcluded from Talk:Scheme (programming language)/GA2. The edit link for this section can be used to add comments to the review.

Reviewer: Pyrotec (talk) 10:21, 12:18, 24 April 2010 (UTC)[reply]

Starting review. Pyrotec (talk) 10:21, 12:18, 24 April 2010 (UTC)[reply]

Introduction

As I've extensively rewritten this article over the past week or so I would like a reassessment of its "Good Article" status. --TS 01:15, 20 October 2009 (UTC)[reply]

Starting review. Pyrotec (talk) 12:20, 24 April 2010 (UTC)[reply]

Initial comments

I don't understand Lisp programming so I will not be carrying about any technical checks on the examples, but if they don't make sense to me I will ask questions here, and depending on what responses are received will influence whether GA-status is awarded or not. I also tend to leave the WP:Lead until last. It is intended to do two things: introduce the article and summarise the main points in the article. Whilst I need to make use of the "introductory" aspects of the Lead, it is often better to review it's "summarising function" at the end of the review.

  • Origin -
  • Now History of the Scheme programming language discusses Lisp, Algol and the Lambda Papers. The Lead mentions Lisp and the Lambda Papers; and Algol and the Lambda Papers get mentioned again in Distinguishing features, so why does this section not mention Algol (and posibly the Lambda Papers) as part of the origins of Scheme (programming language)?
  • Distinguishing features -

....to be continued. Pyrotec (talk) 18:55, 24 April 2010 (UTC)[reply]

      • Minimalism-
  • Its not clear what is the purpose of Ref 8; or indeed whether it is a reference or a note. Its about Scheme48 that does not appear to be discussed anywhere else in the article. Its also a User manual, so this appears to a WP:Primary source, that it is not used in the article.

Overall comments

Unfortunately, I find that the major of this article incomprehensible. At this point, there are two fundamental questions that need to be asked (and addressed):

  • what or who is the intended audience (this is an encyclopedia after all);
  • what information is this article trying to impart?

The WP:Lead provides quite a good Introduction to Scheme (which is only one of the functions of the lead). It is also intended to summarise the main points in the article - but that brings us back to what is the main point of the article?

Origin is a short one-paragraph section. First sentence states (I think) that it was an experiment and that it was expanded; the second, third and fourth sentences discuss its name.

There is no attempt (unlike the Lisp (programming language) or Common Lisp articles) to explain how it, "one of the two main dialects of the programming language Lisp" might be used. Instead, Distinguishing features features are discussed - this forms most of the article and is mostly (to me) incomprehensible.

Review of standard forms and procedures - there is little explanation of appears to be a list in tabular form of operators/functions copied across from an operating manual.

Scheme Requests for Implementation - portable extensions to the standard - there is no explanation RSFI, merely a list possibly copied across from an operating manual.

Implementations, R6RS and Usage - are understandable. I'm beginning to come to the conclusion that Implementations might usefully come before Distinguishing features.


The requirements of a GA are given in: WP:WIAGA. I'm coming to the conclusions that it fails: -

  • 1 (a) - it uses technical terms (jargon) that is wikilinked but are not explained.
  • 3 (b) - I'm coming to the conclusion that the lack explanation of jargon, merely lists and tables, represents unnecessary detail.
  • I'm willing to accept the examples as "illustrations".

At this stage I'm putting the review On Hold and ask the Nominator to consider the points and possibly to consider the way forward. As it stands, I would not award this article GA-status. Pyrotec (talk) 19:16, 28 April 2010 (UTC)[reply]

I've rewritten the intro to the distinguishing features section, giving more explanations. I think one problem is that that section progresses from the abstract to the concrete - I appreciate how elegantly you can implement let with lambda, but the average reader (sadly enough even the average non-Lisp programmer) will understand neither let nor lambda. I would suggest to start with some simple things (examples of s-expressions like (+ 10 (* 2 20)) and maybe a define) and then slowly work up. Given how small and beautiful Scheme is, this should easily have the potential for a FA. --Stephan Schulz (talk) 17:40, 4 May 2010 (UTC)[reply]

GA review – see WP:WIAGA for criteria

  1. Is it reasonably well written?
    A. Prose quality:
    Technical terms are not properly introduced and some sections are unintelligible to non-specialists.
    B. MoS compliance:
    Technical terms are not properly introduced and some sections are unintelligible to non-specialists.
  2. Is it factually accurate and verifiable?
    A. References to sources:
    B. Citation of reliable sources where necessary:
    C. No original research:
  3. Is it broad in its coverage?
    A. Major aspects:
    See coments under 1a.
    B. Focused:
    See coments under 1a.
  4. Is it neutral?
    Fair representation without bias:
  5. Is it stable?
    No edit wars, etc:
  6. Does it contain images to illustrate the topic?
    A. Images are copyright tagged, and non-free images have fair use rationales:
    B. Images are provided where possible and appropriate, with suitable captions:
  7. Overall:
    Pass or Fail:

I'm not awarding GA-status this time around - see my comments above on how I think this article could be brought up to standard. Pyrotec (talk) 20:16, 11 May 2010 (UTC)[reply]