Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Gambit: questions about getting started

279 views
Skip to first unread message

Hugh Aguilar

unread,
Oct 21, 2012, 12:25:46 AM10/21/12
to
1.) What books are available to learn Scheme (preferably in pdf that I
can download for free, as I'm not enthusiastic about spending $$ at
the bookstore). I want to learn is basic Scheme that would work on any
system, as I'm not entirely committed to any particular Scheme system
at this time. I have "Practical Common Lisp" --- is there anything
similar for Scheme?

2.) What C compiler (download for free) can be used to build Gambit
under Windows? I may buy Visual C/C++ later on, but right now I'm not
spending any money.

3.) How do I get the 64-bit x86 assembler that Mark Feeley mentioned
being available for Gambit?

My goal with Scheme is to use it as an overgrown macro-assembler.
Right now however, I'm writing a game just as a learning exercise
(this is the same game that I wrote in SuperForth for the Commodore-64
when I was 18). I'll work into the assembly language later on after
I've got some experience with Scheme.

Is this forum the best place to ask questions about Gambit, or are you
guys only interested in general Scheme questions?

Nils M Holm

unread,
Oct 21, 2012, 2:20:03 AM10/21/12
to
Hugh Aguilar <hughag...@yahoo.com> wrote:
> 1.) What books are available to learn Scheme (preferably in pdf that I
> can download for free, as I'm not enthusiastic about spending $$ at
> the bookstore). I want to learn is basic Scheme that would work on any
> system, as I'm not entirely committed to any particular Scheme system
> at this time. I have "Practical Common Lisp" --- is there anything
> similar for Scheme?

"Sketchy Scheme", which can be found on my homepage, teaches basic
Scheme without any extensions. There is a cheap, up-to-date PDF
version, and an old but "free" version further down the page.

Being an author, BTW, I am rather enthusiastic about people spending
a few bucks on my books.

--
Nils M Holm < n m h @ t 3 x . o r g > www.t3x.org

Hans Aberg

unread,
Oct 21, 2012, 5:20:05 AM10/21/12
to
On 2012/10/21 06:25, Hugh Aguilar wrote:
> 1.) What books are available to learn Scheme (preferably in pdf that I
> can download for free, as I'm not enthusiastic about spending $$ at
> the bookstore). I want to learn is basic Scheme that would work on any
> system, as I'm not entirely committed to any particular Scheme system
> at this time. I have "Practical Common Lisp" --- is there anything
> similar for Scheme?

SICP, which starts out basic, moving to advanced, is freely available
online.

https://en.wikipedia.org/wiki/Structure_and_Interpretation_of_Computer_Programs


Patrick Useldinger

unread,
Oct 21, 2012, 8:58:19 AM10/21/12
to
On Sunday, October 21, 2012 6:25:46 AM UTC+2, Hugh Aguilar wrote:
> 1.) What books are available to learn Scheme
I guess this (http://www.scheme.com/tspl3/) would be the reference for R5RS.

Hugh Aguilar

unread,
Oct 21, 2012, 6:23:01 PM10/21/12
to
On Oct 20, 11:20 pm, Nils M Holm <news2...@t3x.org> wrote:
Thanks to everyone for their pointers to books. I already have SICP in
dead-tree format, but it looked somewhat advanced. I will delve into
the others first and then tackle it. I want to just write a program,
even if it badly written, so I can be a Scheme programmer --- then
start thinking about the advanced features.

I actually prefer having a book in my hands, rather than reading on
the computer screen. I just don't have much money right now. I intend
to eventually write a book about Forth cross-compilation --- I doubt
that any publishing company would accept it though, as there is no
market. Most programmers, when they hear "Forth" think that I am
mispronouncing "Fortran." Scheme seems to still be chugging along at
the fringe with no signs of disappearing, although it will never be
adopted by the script-kiddie legion either.

BTW, Why do computer books cost so much compared to other kinds of
books? A lot of those books go for $40--$50, but they are printed on
the same kind of paper as books in other subjects that go for $15--
$20.

Jeffrey Mark Siskind

unread,
Oct 21, 2012, 6:36:31 PM10/21/12
to
There are lots and lots of good books on Scheme. Here are just a few.

The little Schemer
The Seasoned Schemer
The Reasoned Schemer
How to Design Programs
Structure and Interpretations of Computer Programs
Essentials of Programming Languages
Simply Scheme

The above is just a short list that I can type quickly on a slow internet connection to give you some pointers and is not meant to slight the many other good books available. Take a look at www.schemers.org for a longer list.

The above list covers a wide range of levels and expectations of prior expertise. They also have different writing styles and educational objectives. Pick one that suits your level, expertise, stylistic preferences, and objectives. Some are paperback and inexpensive. Some are available online for free. There are many many additional good books on Scheme with even greater variation of level, expected expertise, style, and objective.

Hugh Aguilar

unread,
Oct 22, 2012, 1:55:25 AM10/22/12
to
On Oct 20, 9:25 pm, Hugh Aguilar <hughaguila...@yahoo.com> wrote:
> Right now however, I'm writing a game just as a learning exercise
> (this is the same game that I wrote in SuperForth for the Commodore-64
> when I was 18).

Is there a Cairo wrapper for Gambit Scheme? Or anything else that
could be used for 2D graphics? I only need straight lines and not all
that fancy stuff with bezier curves etc.. I want to start out with
Windows, although I may later switch over to Linux.

The game, in case anybody is interested, is actually turtle graphics
(not really a game as there is no competition, but just a toy for
making images). What my old C64 program did was turtle graphics in 4
dimensions (axis W, X, Y and Z). I displayed a 2D image of the 3D
aspect of the 4D object, with the lines receding toward a vanishing
point. Also, the perspective could be rotated around any of the 4 axis
to view the object from any angle. I was fascinated by the idea of a
4D universe when I was 18, and this program came about from this
fascination (also, I had a job teaching Logo to the younger kids, and
I thought that 2D Logo was boring). Nobody ever used the software
other than myself --- my fascination wasn't widely shared --- besides
that, SuperForth is proprietary and I couldn't distribute the program
with the interpreter intact (which is required for the program to be
interactive). Scheme's REPL is similar to Forth's command-line, so the
Scheme program can be interactive too --- and Gambit's license allows
it to be distributed freely with the REPL intact --- maybe kids will
like it (although I doubt that it will displace Angry Birds).

Nils M Holm

unread,
Oct 22, 2012, 2:03:37 AM10/22/12
to
Hugh Aguilar <hughag...@yahoo.com> wrote:
> BTW, Why do computer books cost so much compared to other kinds of
> books? A lot of those books go for $40--$50, but they are printed on
> the same kind of paper as books in other subjects that go for $15--
> $20.

The usual excuse of the publishers is that science textbooks sell
fewer copies and hence the expenses are higher due to smaller print
runs. Of course, this is no longer valid in the age of on-demand
publishing.

Back in the 1950's, a typical print run produced about 1000 copies.
In the 1980, novels were mostly printed by the 10,000's, ones by
successful authors in even by the 100k's, which is, of course, much
more profitable, because setting up the machines is what costs real
money. The more books you print, the cheaper they get. Science books
typically were printed in batches of 1000 or 2000 copies in the 1980's,
which *is* a bit more expensive.

But then, books in the 1950's were not that much more expensive than
in the 1980's. So one may wonder where the extra profit goes. Hint:
it lands not in the pockets of the authors.

The argument that textbooks sell fewer copies than novels, though,
remains valid from the author's point of view. When you successfully
publish a novel, you usually sell 10,000 to 20,000 copies. For the
average science textbook, 1,000 is okay. Do your own math...

(Numbers may be slightly outdated, but the basic facts are still
the same.)

Hugh Aguilar

unread,
Oct 22, 2012, 6:17:59 AM10/22/12
to
On Oct 21, 11:03 pm, Nils M Holm <news2...@t3x.org> wrote:
> Hugh Aguilar <hughaguila...@yahoo.com> wrote:
> > BTW, Why do computer books cost so much compared to other kinds of
> > books? A lot of those books go for $40--$50, but they are printed on
> > the same kind of paper as books in other subjects that go for $15--
> > $20.
>
> The usual excuse of the publishers is that science textbooks sell
> fewer copies and hence the expenses are higher due to smaller print
> runs. Of course, this is no longer valid in the age of on-demand
> publishing.

Are your books "textbooks" in the sense that they were used in a
classroom and the professor required the students to buy them? Or are
they technical books that people like myself might buy to learn
something?

I've bought a *lot* of technical books; I've got boxes and boxes of
books in storage. I bought Winston&Horn way back when I was a
teenager, but never read it (I found it today when I was looking for
SICP, which I also found). I've spent a ton of money on books on a
wide variety of subjects, but the only thing I ever became any good at
was Forth (a variety of assembly languages too, although that is not
fun like Forth is). I know other things, like C/C++, but a lot of
times what I primarily know about a subject is that I don't like it.

I'm enthusiastic about learning Scheme though! Hopefully I can
maintain this enthusiasm long enough to be able to add Scheme to my
meager list of things that I know. :-)

Nils M Holm

unread,
Oct 22, 2012, 7:38:55 AM10/22/12
to
Hugh Aguilar <hughag...@yahoo.com> wrote:
> Are your books "textbooks" in the sense that they were used in a
> classroom and the professor required the students to buy them? Or are
> they technical books that people like myself might buy to learn
> something?

Some of them have been used in classrooms, but they are definitely
intended for self-study. Most of my books assume that the reader
knows little or nothing about the topic under discussion, and I
am very careful about defining things properly before referring to
them later in the book. The feedback I have received so far suggests
that my books are both readable (not boring) and comprehensible.

But decide for yourself! Older versions of many of my books can
be downloaded in PDF format from my homepage. The URL is in the
signature.

> I'm enthusiastic about learning Scheme though! Hopefully I can
> maintain this enthusiasm long enough to be able to add Scheme to my
> meager list of things that I know. :-)

Choose one of the books suggested here, read it, and try the
examples. Scheme is a small language, the harder part is to
develope some kind of "functional programming" mindset, i.e.
getting used to defining solutions as compositions of functions
rather than sequences of commands.

Hugh Aguilar

unread,
Oct 23, 2012, 1:05:54 AM10/23/12
to
On Oct 22, 4:38 am, Nils M Holm <news2...@t3x.org> wrote:
> Scheme is a small language, the harder part is to
> develope some kind of "functional programming" mindset, i.e.
> getting used to defining solutions as compositions of functions
> rather than sequences of commands.

Can you elaborate on the functional-programming mindset?

My understanding of functional-programming is that we want to write
functions that use only the data that is passed into them, rather than
global data. The function can be tested thoroughly, with all possible
kinds of inputs. Also, it is best to write short functions that do
only one thing. Avoid functions that contain an IF (or worse, a CASE)
that tests some input parameter and then does different things
depending upon that test. Keeping the functions simple like this also
makes thorough testing more realistic.

I think that it was Chuck Moore who said: "Let the dictionary do the
deciding." This means don't test at run-time to determine what a
function is going to do, but have separate functions for each task and
choose which one to use at compile-time.

I never liked printf in the C language. It is like a mini-language
that interprets a kind of code in a string. Ugh! By comparison, in
Forth we have "pictured output." We have # that represents a digit,
and so forth. This isn't a code in a string though --- # and all of
those formatting words are just Forth functions. Each of those Forth
functions is short and simple, and it does one thing, and you put them
together to do a complicated thing. By comparison, printf is
monolithic. It has never been tested thoroughly in the many decades
since it was written --- there are way too many possible input
strings.

I'm interested in Gambit because I want to use the available C
libraries, but I don't really like C itself. I've worked as a C
programmer, and I've seen some *ugly* C code, such as functions of 100
lines or more. Hopefully in learning Scheme I won't run into any
monsters like that. :-)

Nils M Holm

unread,
Oct 23, 2012, 5:45:56 AM10/23/12
to
Hugh Aguilar <hughag...@yahoo.com> wrote:
> Can you elaborate on the functional-programming mindset?

Writing functional programs means to write functions and then
combine them. All non-trivial functions are divided into trivial
(non-recursive) and general (recursive) cases. For instance, to
reverse a list, you would:

- map the empty list to the empty list: () ==> ()

- append a list containing the first element to the reversed rest
of the list:

(first rest ...) ==> (reversed rest ...) + (first)

In Scheme: To reverse a non-empty list LST using MY-REVERSE:

(append (my-reverse (cdr lst)) (list (car lst)))

Full program:

(define (my-reverse lst)
(if (null? lst)
'()
(append (my-reverse (cdr lst))
(list (car lst)))))

Another example: To find the maximum of a list:

- assume that the first element (X) is the maximum

- if the rest of the list is empty, return X

- if the first element E of the rest is larger than X,
return the maximum of E and the rest of the list

- else return the maximum of X and the rest of the list

In Scheme:

(define (maximum x . rest)
(cond ((null? rest)
x)
((> (car rest) x)
(apply maximum (car rest) (cdr rest)))
(else
(apply maximum x (cdr rest)))))

Notes: (maximum x . rest) decomposes the arguments of MAXIMUM
into the first argument X and a list named REST containing the
rest of the arguments.

(apply maximum x lst)
calls MAXIMUM with the arguments [plural!] (cons x lst).

So every function maps some arguments to a value. You write programs
by combining functions. Browse http://www.t3x/org/s9fes/lib.html
for some more complex examples.

You then proceed to higher order functions, i.e. functions generating
functions, mapping, folding, etc.

For instance, you might want to write a minimum function and notice
that it differs from MAXIMUM only by single character. So instead
of copying 99% of the code, you write a function that generates
both MINIMUM and MAXIMUM:

(define (make-minmax pred)
(define (minmax x . rest)
(cond ((null? rest)
x)
((pred (car rest) x)
(apply minmax (car rest) (cdr rest)))
(else
(apply minmax x (cdr rest)))))
minmax)

(define minimum (make-minmax <))
(define maximum (make-minmax >))

Most importantly, though: acquiring the "functional mindset" cannot
be done by just reading about it. Try to solve some problems in the
functional way! Fetch a book, read about the basics, solve some
simple problems, like appending lists, reversing lists, finding the
greatest common divisor, etc.

Then solve a few more complex problems (generate the combinations
or permutations of a string, implement mergesort, etc). Next write
a few small programs by combining functions, then write larger
programs. Feel free to look at above URL for inspiration, but DO
try to find your own solutions!

Finally, learn to recognize functional patterns, like mapping and
folding, and use the appropriate higher-order functions. Keep
practicing. Nothing else will get you anywhere!

> My understanding of functional-programming is that we want to write
> functions that use only the data that is passed into them, rather than
> global data.

Yes, global state is used only when necessary. But Scheme code *does*
use global state when it makes sense. We do not try abstract everything
away at the function level.

> [...] Also, it is best to write short functions that do
> only one thing.

Factoring is a good thing but there is not need to make a religion
out of it. Don't be afraid to write functions that span multiple
pages, if it makes sense.

> Avoid functions that contain an IF (or worse, a CASE)

This is not FORTH. IF, COND, and CASE are used frequently.

> I never liked printf in the C language.

Well, we have FORMAT, [1] which is much more entertaining! It can
even do conditional evaluation and iteration.

[1] it's actually a Common Lisp thing, but many Schemes also have it.

> [...] Each of those Forth
> functions is short and simple, and it does one thing, and you put them
> together to do a complicated thing.

In Scheme a function also does one thing, but that "thing" may be
quite complex, like compiling a regex. (See for example,
http://t3x.org/s9fes/regex.scm.html)

> By comparison, printf is
> monolithic. It has never been tested thoroughly in the many decades
> since it was written --- there are way too many possible input
> strings.

Don't have a look at FORMAT, then.

> I'm interested in Gambit because I want to use the available C
> libraries, but I don't really like C itself. I've worked as a C
> programmer, and I've seen some *ugly* C code, such as functions of 100
> lines or more. Hopefully in learning Scheme I won't run into any
> monsters like that. :-)

You can write ugly code in any language, and it has been done in
Scheme, too. It is up to you what you make out of it.

Ingolf Jandt

unread,
Oct 23, 2012, 5:55:16 PM10/23/12
to
I think the most simple way to create a small graphic "game" such as you
describe and deploy it is the graphical interface of racket.

http://docs.racket-lang.org/gui/index.html
(see 1.2 Drawing in Canvases, 1.7 Animation …)

Deploying a standalone / installable app is just two klicks with
racket.

Have fun.
ingolf

Ingolf Jandt

unread,
Oct 23, 2012, 6:13:43 PM10/23/12
to
IMHO the most simple way to create a small graphical "game" as you
describe and deploy it as a stand-alone app is using racket's graphical
interface toolkit

http://docs.racket-lang.org/gui/index.html

Deploying a standalone / installable app is just two mouseklicks in
racket.

Have fun.
ingolf

Hugh Aguilar

unread,
Oct 24, 2012, 2:13:16 PM10/24/12
to
On Oct 23, 2:45 am, Nils M Holm <news2...@t3x.org> wrote:
> Hugh Aguilar <hughaguila...@yahoo.com> wrote:
> > Can you elaborate on the functional-programming mindset?
I think I understand the gist of what you are saying. I will have to
practice doing it though, to really understand it.

In my novice package (http://www.forth.org/novice.html) I wrote code
for linked-lists and associative arrays. I rely on the lists a *lot*
in my own programming. I use the "mapping" pattern that you describe.
I have EACH that is given a pointer to a list, and is given an xt
(execution-token) for a function. It then executes that function for
every node in the list. The function can communicate with the parent
function that is calling EACH. This is similar to closures. I have the
same for the associative arrays. A lot of Forth programmers didn't
like this and said that it was un-Forth-like. I think that it Scheme-
like though, although I don't know enough about Scheme yet to really
say. I don't know what the "folding" pattern is at all.

I tried learning Factor and wrote some small programs. It is a pretty
cool language. Largely why I gave up on it is because I didn't
understand the concepts like mapping and folding that you are talking
about, and the documentation is mostly a reference that assumes the
user already knows the concepts. I switched over to Scheme largely in
the hopes that there would be more documentation available so I could
learn these concepts. There does seem to be a lot, and you have
contributed much yourself! I may go back to Factor later on after I've
learned more and am better prepared. If Scheme does what I want
though, then I may stick with it.

Factor has a web framework now. I think that Racket does also. I'm
somewhat hesitant to get into Racket though, because I have heard that
Racket is slow. By comparison, Factor compiles into machine-code is
and quite fast. That is all in the future though. I'm not interested
in web programming any time soon. Right now I just want to learn the
concepts of computer programming that you are describing above. My
experience with Factor has informed me of my own lack of knowledge,
which I hadn't really been aware of previously.

> > My understanding of functional-programming is that we want to write
> > functions that use only the data that is passed into them, rather than
> > global data.
>
> Yes, global state is used only when necessary. But Scheme code *does*
> use global state when it makes sense. We do not try abstract everything
> away at the function level.

Well, you have to have global data. Abstracting that out entirely is
not really possible.

BTW, I looked at Erlang and it confused the heck out of me. They are
really avoiding global data because they have all those processors
running in parallel and they can't share memory, which is of course
where global data is stored.

Self-contained functions are easier to test though, so this is an
ideal worth striving for as much as possible.

> > [...] Also, it is best to write short functions that do
> > only one thing.
>
> Factoring is a good thing but there is not need to make a religion
> out of it. Don't be afraid to write functions that span multiple
> pages, if it makes sense.

Forth does make a religion out of factoring. I think this is a good
thing, because it helps a lot in testing.

When I was employed as a Forth programmer my boss criticized my code
as being over-factored. It is possible I take the idea to somewhat of
an extreme. It works for me though.

Hugh Aguilar

unread,
Oct 24, 2012, 2:31:49 PM10/24/12
to
If that turtle-graphics program were the only one that I wanted to do,
then I agree that Racket would be a better choice than Gambit. I think
that Gambit is the more "professional" system though, so that is the
one that I want to focus on so I can write commercial programs later
on. It generates pretty fast code. Also, there are a lot of C
libraries available. Racket may have support for graphics for games
(most of the users seem to be college undergrads, so game-writing is
to be expected), but do you have anything to compare to the heavy-duty
C libraries available? Like Berkeley-DB, for example?

I invented a card game several years ago and have always wanted to
write a program to play this game. I notice that Racket has a library
to support card games, with images for all of the cards. I think that
I will write this program in Racket, maybe after writing the turtle
graphics game in Gambit that I'm working on now. There is no reason
for me to limit myself to Gambit or Racket --- they are both Scheme,
so most of what I learn will serve me well for either --- I can
eventually learn both and choose between them depending upon the task
at hand.

arc

unread,
Oct 25, 2012, 2:00:31 AM10/25/12
to

If you want libraries for game development, there are a couple available
for Chicken, according to here:

http://wiki.call-cc.org/chicken-projects/egg-index-4.html

of particular interest to you would be the SDL libraries and allegro,
which for some reason is listed under input/output.

I'm not sure whether Chicken meets your requirements for
'professionalism'. It's pretty fast, perhaps not as fast as Gambit, but
usually in the same ballpark. There are lots of libraries.

On the other hand, it has a silly name...

--
-arc.

Hugh Aguilar

unread,
Oct 31, 2012, 1:03:42 AM10/31/12
to
That is a pretty impressive list of libraries. I'll definitely look
into Chicken!

Most likely, I'll end up learning Gambit, Racket, Chicken, and maybe
some others. I have to start somewhere though, as I can't learn
everything at once. I doubt that it matters all that much where I
start, so long as I do start. Gambit does have that 64-bit x86
assembler, so I'll start with it for good or for bad.

Is it true that only Racket has its own IDE, but with the others you
generally use SLIME?

vispha...@gmail.com

unread,
Nov 1, 2012, 8:47:03 AM11/1/12
to
st
art a few dozen scheme powwered websites and sell them

dont chisel people on the learn

Christian Kellermann

unread,
Nov 2, 2012, 4:28:29 AM11/2/12
to
Hugh Aguilar <hughag...@yahoo.com> writes:
> Most likely, I'll end up learning Gambit, Racket, Chicken, and maybe
> some others. I have to start somewhere though, as I can't learn
> everything at once. I doubt that it matters all that much where I
> start, so long as I do start. Gambit does have that 64-bit x86
> assembler, so I'll start with it for good or for bad.
>
> Is it true that only Racket has its own IDE, but with the others you
> generally use SLIME?

Or just the run-scheme inferior mode, which also works just fine.

Kind regards,

Christian

William Gardella

unread,
Nov 2, 2012, 9:44:50 AM11/2/12
to
Also! MIT Scheme has Edwin.

Hugh Aguilar

unread,
Nov 3, 2012, 1:17:17 AM11/3/12
to
On Nov 1, 5:47 am, visphatesj...@gmail.com wrote:
> st
>
>
>
>
>
>
>
>
>
> On Sunday, October 21, 2012 1:20:04 AM UTC-5, Nils M Holm wrote:
I don't begrudge Mr. Holm for selling books. I intend to write a book
on Forth someday and sell it. All of that code that I wrote in the
novice package is intended to go into the book as example programs.
There is no small amount of work involved in putting all of that
together.

On the other hand, I'm broke right now and can't afford to spend money
on learning Scheme --- it is not like I'm ever going to make any money
as a Scheme programmer --- it is just for fun.

WJ

unread,
Nov 6, 2012, 10:49:47 AM11/6/12
to
It seems to be geared toward "ivory-tower" concepts, and not
toward real-world programming.

Ludwig Meier

unread,
Nov 6, 2012, 12:19:52 PM11/6/12
to
Am 06.11.2012 17:49, schrieb WJ:
> Hans Aberg wrote:
>>
>>
>> SICP, which starts out basic, moving to advanced, is freely available online.
>>
>> https://en.wikipedia.org/wiki/Structure_and_Interpretation_of_Computer_Programs
>
> It seems to be geared toward "ivory-tower" concepts, and not
> toward real-world programming.

What a bullshit. If there weren’t any guys in the ivory tower people
like you would not be able to miss the point of any question by posting
racket-code.

Hugh Aguilar

unread,
Nov 6, 2012, 11:42:51 PM11/6/12
to
On Nov 6, 10:19 am, Ludwig Meier <quintus.veran...@yahoo.com> wrote:
> Am 06.11.2012 17:49, schrieb WJ:
>
> > Hans Aberg wrote:
>
> >> SICP, which starts out basic, moving to advanced, is freely available online.
>
> >>https://en.wikipedia.org/wiki/Structure_and_Interpretation_of_Compute...
>
> > It seems to be geared toward "ivory-tower" concepts, and not
> > toward real-world programming.
>
> What a bullshit. If there weren’t any guys in the ivory tower people
> like you would not be able to miss the point of any question by posting
> racket-code.

Well, I'm working through SICP right now. I'll likely read some other
stuff too, especially some of what Nils wrote.

I tried learning Factor 3 years ago and wrote a few simple programs. I
gave up on Factor largely because I didn't understand the concepts.
Factor's documentation is mostly a reference and assumes that the user
already knows the concepts. I am learning Scheme now because Scheme is
an academic language and consequently has beaucoup documentation
available explaining concepts. Within that context, "ivory tower
concepts" are largely what I want. After I get a handle on the
concepts I can apply that knowledge to "real-world programming." It is
a mistake for me to dive into writing real-world programs without
first understanding the concepts though --- I would just turn into a
script-kiddie who can paste together code written by other people, but
who doesn't know how the code works and wouldn't be able to write a
program from scratch to save his soul.

Scheme, and SICP, are a good place for me to learn right now. Later on
I may go back to Factor and/or jump to CL, both of which are more real-
world oriented. Or, I may just stick with Scheme --- Gambit is
designed to work hand-in-hand with C, which definitely implies that it
is trying to escape from the much-dreaded ivory-tower to be real-world
applicable. :-)

gavino_learning

unread,
Nov 7, 2012, 12:34:31 AM11/7/12
to
why not?
If scheme makes better solutions why would they not be sale able?

Ludwig Meier

unread,
Nov 7, 2012, 2:27:53 AM11/7/12
to
Am 07.11.2012 06:42, schrieb Hugh Aguilar:

> Well, I'm working through SICP right now. I'll likely read some other
> stuff too, especially some of what Nils wrote.
>
> I tried learning Factor 3 years ago and wrote a few simple programs. I
> gave up on Factor largely because I didn't understand the concepts.
> Factor's documentation is mostly a reference and assumes that the user
> already knows the concepts. I am learning Scheme now because Scheme is
> an academic language and consequently has beaucoup documentation
> available explaining concepts. Within that context, "ivory tower
> concepts" are largely what I want. After I get a handle on the
> concepts I can apply that knowledge to "real-world programming." It is
> a mistake for me to dive into writing real-world programs without
> first understanding the concepts though --- I would just turn into a
> script-kiddie who can paste together code written by other people, but
> who doesn't know how the code works and wouldn't be able to write a
> program from scratch to save his soul.
>
> Scheme, and SICP, are a good place for me to learn right now. Later on
> I may go back to Factor and/or jump to CL, both of which are more real-
> world oriented. Or, I may just stick with Scheme --- Gambit is
> designed to work hand-in-hand with C, which definitely implies that it
> is trying to escape from the much-dreaded ivory-tower to be real-world
> applicable. :-)

I completely agree. I am well fluent in markup languages like LaTeX and
XHTML. Besides I have been trying to learn programming for several years
by diving into perl, c and sql; unfortunately without success because
they were not appealing to me and made me yawn. Please don’t get me
wrong: I am allowed to say such a thing just because I am a historian
and do not have to stick to any cs-curriculum. :) SICP finally set me on
fire. It is indeed their much dreaded »academic« approach which appeals
to me. I really do not understand the polemic distinction between »ivory
tower« and »real world« which is found on the web betimes. The concepts
teached by SICP were sufficient for me to understand things like sxml in
order to process xml-files by scheme (this said as a »real world«
application). :)

Hugh Aguilar

unread,
Nov 14, 2012, 2:59:05 AM11/14/12
to
On Nov 7, 12:27 am, Ludwig Meier <quintus.veran...@yahoo.com> wrote:
> I completely agree. I am well fluent in markup languages like LaTeX and
> XHTML. Besides I have been trying to learn programming for several years
> by diving into perl, c and sql; unfortunately without success because
> they were not appealing to me and made me yawn. Please don’t get me
> wrong: I am allowed to say such a thing just because I am a historian
> and do not have to stick to any cs-curriculum. :) SICP finally set me on
> fire. It is indeed their much dreaded »academic« approach which appeals
> to me. I really do not understand the polemic distinction between »ivory
> tower« and »real world« which is found on the web betimes. The concepts
> teached by SICP were sufficient for me to understand things like sxml in
> order to process xml-files by scheme (this said as a »real world«
> application). :)

Over on comp.lang.forth a lot of novices have expressed interest in
learning Forth. I tell them to write a program to learn (I provided my
novice package to make writing a program easy to get going on). I
think that it is a bad idea to "study" a language, as that can be very
yawn-inducing. This is what I'm trying to do with Scheme --- dive into
writing a program right away, although I'm not really ready in the
sense of knowing the concepts well --- most likely, my first efforts
will be pretty low quality.

On the other hand, if somebody avoids learning the concepts forever,
then he will turn into a script-kiddie. So there is a balance. I think
it is best to focus on programming until you get confused, then do
some studying. Study until you begin to yawn, then go back to
programming. Repeat as necessary.

The good thing about Scheme is that it is possible to study. We have
SICP and various other books. There aren't very many books on Forth,
and what we have tend to be rather simplistic.
0 new messages