Writing a portable schema code. Is anything "standard" outside of the R5RS?

I am studying the circuit and still use the trick. I'm really just learning how to teach myself a functional programming language, but I would like to publish an open source project to resume my research - I don't know what else ... I'm a web developer, so it's probably something webby.

It becomes obvious that the code of the publication scheme is not so simple to do, and all these different implementations and no real standards are at the heart of the language itself (R5RS). For example, I will almost certainly need to do basic I / O on disk and through a TCP socket along with string manipulations like scan / regex, which don't seem to be covered by R5RS if I don't see them in the document. Scheme seems to be more of a “concept" than a practical language ... is it a fair assessment? Perhaps I should take a look at something like Haskell if I want to learn a functional programming language that is more suitable for use in open source projects?

In reality, how strongly do different options for implementing schemes come about when you want to publish an open source project? I really don't need to support 5 different functions for basic things, such as string manipulation in various main implementations (Chicken, guile, MIT, DrRacket). How many people actually write cross-implementation compatibility schemes rather than being closely related to library functions that exist only in their own scheme?

I read http://www.ccs.neu.edu/home/dorai/scmxlate/scheme-boston/talk.html , which does not fill me with confidence;)

EDIT | Let me redefine "standard" as "general."

+11
source share
4 answers

Hard question.

. , () . , . SnowFort.

http://snow.iro.umontreal.ca/

SLIB.

http://people.csail.mit.edu/jaffer/SLIB

- - lexer/parsers, .

R5RS , , , , .

" " R5RS . R6RS ( R7RS?) "" .

, , , , , . , . , , . , .

+9

, , - , , , , ( Python Ruby, ).

, Scheme " OpenGL DirectX". , - , , .

, SRFI ( ), , Scheme .

  • case-lambda (SRFI 16); , , case-lambda, "" .
  • stream-constant SRFI 41. O (n) , , O (1).

. . SRFI , SRFI. , , , . , , , , , SRFI.

stream-constant O (1) . !

+15

, Scheme . - , , R5RS , . , , . , , , , wget ( Chez Scheme - , - ); , ANSI.

. , , . , , .

+8

It is worth noting that modern implementations of the Scheme themselves are quite portable; You can often port entire programs to new environments simply by using the appropriate scheme. However, this does not help the programmers of the library, and that where R7RS-small, the last definition of the circuit, is included. It is not yet widely implemented, but it provides a larger common core than R5RS.

+6
source

All Articles