i'm happy to let you know, that i've found the entry point.
which entry-point?
i'll tell you later.
first of all: you've maybe noticed a small change.
i became a little ironic.
this is to offend the hairsplitters.
and to offend garbage.
-
garbage is not something wrong that someone tells me .
garbage is an 'expert', who tries to teach me.
and who himself has not understood.
and who don't take back his didactical tone.
even if you show him that he is (al least maybe) wrong.
that's garbage.
-
human brain.
there are facts.
and the ability to process facts.
-
from now on, i'll treat with respect only those which treat me with respect.
this is cause i've to focus my energy on working.
thus i've not enouth energy for gentleness.
-
The Entry Point.
*year*:
well, it is 1958.
John McCarthy.
there i'll begin.
maybe i've to go back more.
will see.
i've already started.
-
*language*:
C or C++
i code in C++, although i use in the begining only C subset.
i'm not exactly sure if i keep that.
*functionality*
i know nearly nothing.
the reader-concept.
the macro a little.
backquote a little.
garbage collector. i've an idea what this is, cannot imagine that it is so complicated. claim and release memory. but will see.
and of course all that knowledge from *using* many languages. but nothing indeep, mostly fuzzy in memory.
-
the good thing: i can assimilate everything. no need to develope it.
i'm undereducated. that's why i can decide quicker what to assimilate and what not.
how that, without knowing it? well, i'll know what i need. i give someone the abstract description of what i need. and he tells me: this an that you can use. i say: explain me 'with apples' the differences. then i decide: that one.
you see: i'm depending on experts which are able to explain 'with apples', which is nothing more than abstracting an essence down to a general common sense level.
but before i loose 'virginity', i'll try to build a lisp without looking at another code.
i've no imagination of how to build such a simple system. the first coding has started. seems really difficult.
Bruce Stephens wrote: > ilias <at_n...@pontos.net> writes:
> [...]
>>but before i loose 'virginity', i'll try to build a lisp without >>looking at another code.
> Why?
to get a sense of the difficulty of developement.
to be able to appreciate other peoples work, which i can later include with a small decision into my developement.
to see which of the constructs used in lisp resulting 'out of the need' and 'out of clear human sense' or 'the natural flow of things', and which parts are the really difficult to realize creative works.
> Have a look at "ANSI Common Lisp" by Paul Graham. This has an implementation > of many of the Lisp functions in Lisp.
but that would not provide the real and deep pleasure of deriving the entire language and its various inventions and offsprings from its first principles, would it?
oz -- there is a fault in reality. do not adjust your minds. -- salman rushdie
> > Have a look at "ANSI Common Lisp" by Paul Graham. This has an implementation > > of many of the Lisp functions in Lisp.
> but that would not provide the real and deep pleasure of deriving the > entire language and its various inventions and offsprings from its > first principles, would it?
> oz > -- > there is a fault in reality. do not adjust your minds. -- salman rushdie
True. I suppose it depends on how short you think life is.
>>>Have a look at "ANSI Common Lisp" by Paul Graham. This has an implementation >>>of many of the Lisp functions in Lisp.
>>but that would not provide the real and deep pleasure of deriving the >>entire language and its various inventions and offsprings from its >>first principles, would it?
>>oz >>-- >>there is a fault in reality. do not adjust your minds. -- salman rushdie
this is funny!
me: Mr. Salman Rushdie, can I?
SR: yes my son.
me: thank you!
"there is a fault in the specs. do not adjust you minds."
hehe!
> True. I suppose it depends on how short you think life is.
> Tim Josling
-
life is to short.
the middle way:
realize the problem.
trying to solve ( a few hours or days )
look at the solutions.
feel the respect for the solutions.
assimilate the best.
-
The decision: which is the best?
With the entry-point 1958, 100.000 people will have 100.000 different results in 2002 (or better: 2003).
Why, with so many other newsgroups to ann...I mean languages to learn, did you pick Lisp?
Why not Scheme? Perl? Modula-3? Dylan? Clipper? Icon? VRML?
Why not Fortran? It's even older than Lisp, and has a much more active following including many interesting people, who, I am sure, will be more than happy to pan-fr...I mean spend their time enlightening someone with such an obtu...I mean interesting approach to learning as yours.
Think about it. If CLL is such an unfriendly place, perhaps that says something about Lisp itself. Perhaps people who get to know Lisp well become the kind of people who will flame, toast, roast and otherwise barbecue innocent seekers after knowledge. (My mouth is watering already.)
It has become clear that CLL is not worthy of your attention. I don't think Lisp is either. It simply has too much academic baggage for someone with such a pristine intellect as yours. I still think you won't be really happy until you find your true home in some Microsoft-related newsgroup.
-- Fred Gilham gil...@csl.sri.com ``This is mere entertainment featuring fictional characters. No real human relationships were shattered in the making of this TV series.''
Fred Gilham wrote: > It has become clear that CLL is not worthy of your attention. I don't > think Lisp is either. It simply has too much academic baggage for > someone with such a pristine intellect as yours. I still think you > won't be really happy until you find your true home in some > Microsoft-related newsgroup.
:-) :-) :-)
You are probably right --- He *is* using M$ Windows for posting :-)
In the last exciting episode, ilias <at_n...@pontos.net> wrote::
> i'm unable to continue my simpe C++ database project.
> looks senseless to me.
Have you considered taking your discussion to comp.databases or comp.lang.c++, both of which would be tremendously more relevant fora than comp.lang.lisp? -- (reverse (concatenate 'string "moc.enworbbc@" "sirhc")) http://cbbrowne.com/info/languages.html "When campaigning, be swift as the wind; in leisurely march, majestic as the forest; in raiding and plundering, like fire; in standing, firm as the mountains. As unfathomable as the clouds, move like a thunderbolt." -- Sun Tzu, "The Art of War"
Christopher Browne wrote: > In the last exciting episode, ilias <at_n...@pontos.net> wrote::
>>i'm unable to continue my simpe C++ database project.
>>looks senseless to me.
> Have you considered taking your discussion to comp.databases or > comp.lang.c++, both of which would be tremendously more relevant fora > than comp.lang.lisp?
Mr. Browne!
Hello, i hope you are fine.
Please read my post fully (you've quoted me 'off-context'). I'm writing a lisp from scratch, to see how difficult it is. So i'm in topic.
I'm just a little confused, it is really difficult to find the entry point to start coding. I know lisp only somehow fuzzy. I know cons, pair, first, rest etc.! but i don't know exactly what they do and how everything is represented in memory.
That why i've just printed some documents, which have more graphical representation. so i think i'll understand until tomorrow.
But suggestion (in topic, please) are of course welcome.
> I'm just a little confused, it is really difficult to find the entry > point to start coding. I know lisp only somehow fuzzy. I know cons, > pair, first, rest etc.! but i don't know exactly what they do and how > everything is represented in memory.
Well that is certainly an improvement over playing syntax games.
> But suggestion (in topic, please) are of course welcome.
Start small- learn how to use loop to iterate over a list, then how to use the various clauses to tailor its behavior. You cannot start coding in any non-trivial sense until you understand how a sufficient number of parts of the language work. This is true for any programming language you might try to learn. You can safely ignore the in-memory representation of data for the time being.
>>I'm just a little confused, it is really difficult to find the entry >>point to start coding. I know lisp only somehow fuzzy. I know cons, >>pair, first, rest etc.! but i don't know exactly what they do and how >>everything is represented in memory.
> Well that is certainly an improvement over playing syntax games.
i'm implementing a lisp interpreter, so i control the 'syntax-games' better.
>>But suggestion (in topic, please) are of course welcome.
> Start small- learn how to use loop to iterate over a list, then how to > use the various clauses to tailor its behavior. You cannot start > coding in any non-trivial sense until you understand how a sufficient > number of parts of the language work. This is true for any > programming language you might try to learn. You can safely ignore > the in-memory representation of data for the time being.
a missunderstanding.
i have problems with implementing a lisp interpreter in C++.
i'm a lisp novice.
after i've finishing the basic implementation of the lisp interpreter, i'll be still a lisp novice.
My 60 days trial for Borland C++ Builder expires tomorrow.
I don't know if it is allowed to try for another 60 days.
If not, i must set up another C++ system.
I use windows OS, but i'd like to switch to a linux system one day. so i'd like to have a cross-platform C++, but a nice one, with an integrated developement environment.
can someone suggest me one?
I don't want to deal with complicated installations-sequences.
this is stuff for freaks that have nothing better to do than to manage complicated things.
i have this need, too. I compensate it with 'spider', this is something like 'pacienda' (this card game on windows). *very* complicated. Althougth i do not always win, after a few game *i* am the winner.
when i see those lousy installation read me's, i shout: why does this guy (the manual writer, which is in general the programmer or one of the programmers) writes all this down, so thousands of people have to do that, instead of providing a simple install.bat or setup.exe or so.
this small detail is one reason that companies win in competition. Whilst the others exhaust their potential customers with dealing with details, the others make things simple (not better, just simpler) and win the competition.
On 29 Sep 2002 23:14:13 GMT, Christopher Browne <cbbro...@acm.org> wrote:
>Have you considered taking your discussion to comp.databases or >comp.lang.c++, both of which would be tremendously more relevant fora >than comp.lang.lisp?
Uh - no, no, C++ really isn't the right language for you ilias, honestly, trust me on this one. Much better off to give up on it now. Try... um, Visual Basic, that's it! That'd suit you much better :)
-- "Mercy to the guilty is treachery to the innocent." Remove killer rodent from address to reply. http://www.esatclear.ie/~rwallace
> Wait 'til you get to closures, macros and garbage collection. :-)
Closures can be implemented easily using the funarg mechanism, and is just a matter of saving the environment along with the function when the function is evaluated, and then using that environment when the function is applied. This is explained in detail in The Anatomy of Lisp starting at page 146.
For macros, just get eval to macroexpand them (macroexpansion is just treating the macro as a function applied to the unevaluated arguments), before evaluating the macroexpansion.
The only problem closures and macros is keeping track of the correct environment, but this is well understood.
Garbage collection is more problematic. You can get around the problem entirely by writing your interpreter in a language such as Java which supports garbage collection, but that of course is cheating. A simple mark and sweep collector is straightforward to implement in C, and the algorithm is well known. If you do this, you need to remember to use an explicit stack, as if you naively do something like
List append(List x, List y) { List z = NULL; while (x != NULL) { z = cons(first(x), z); x = rest(x); } while (z != NULL) { y = cons(first(z), y); z = rest(z); } return y;
}
the mark phase of the garbage collector might not see x or y when it is called during one or other of the calls to cons. (BTW, before anyone points out, I'm aware the algorithm above can be rewritten recursively, or with only one cons if pointers are rearranged. Also, using NULL as NIL might not be a good idea.)
More sophisticated techniques (e.g. generational garbage collectors) are probably overkill in a learning exercise, unless you're learning about garbage collection per se.
Le Hibou -- Dalinian: Lisp. Java. Which one sounds sexier? RevAaron: Definitely Lisp. Lisp conjures up images of hippy coders, drugs, sex, and rock & roll. Late nights at Berkeley, coding in Lisp fueled by LSD. Java evokes a vision of a stereotypical nerd, with no life or social skills.