* cr88192 <cr88...@hotmail.com> | I got a copy of the ansi spec, and am almost intimidated by the size... | hopefully I really don't have to read that much...
Excuse me? You hope you do not have to read a thousand pages? Why? Are you illiterate or very hard of reading or something? I have not kept record of how much I read every year, but it must be at least 12 000 pages of nonfiction alone. For the past 25 years or so, I have set aside 2 hours a day to study or just read about something _unrelated_ to what I need to learn or work with, and probably spend even more on work-related reading. This is in my view not a lot. Learning to read and type fast, efficiently, and accurately is a requirement in modern society.
With only two hours a day, the Common Lisp standard should take you no more than a month, with plenty of time to think about what you read, take notes, including deferring stuff for a later pass. That is not, again in my view, not a lot to require of someone who wants to become a serious user of a programming language. 30 years of wisdom and insight in the Lisp community is made available in only 30 days. Of course, it will take much longer to make use of all this, but at least you have been through it and have thought about it and provided a large number of "hook" on which you can hang various information you get when you ask people, and you can make connections that people who simply lack the knowledge cannot.
| I see emphasis placed on 1100 pages... r5rs is 50... sorry if this is a | problem...
It means that R5RS is a short story you might chuckle or shudder at before you forget it while ANSI X3.226-1994 is a novel that enriches your character.
| really I want to implement the one that is hopefully simpler and | hopefully have an underlying system flexible enough to include both.
Why the hell do you want to implement it?
| when I was younger I used to use big books for bragging rights (I would | say: I read this, and point to a 1000 to 1500 page book, but really I | don't want to read that much...).
Oh, so _that_ is the reason these idiot books were printed on cardboard with 36-point type. Idiot bragging rights! Good thing I never even thought of buying any of those. My >1000-volume personal library seems to average about 400 pages to a volume, and a _large_ fraction of my books are more than 1000 pages thick, but they are printed on thin, high quality paper, not recycled cardboard, with fairly small print, not at all suitable for the fourth-grade reading level of most "computer" books.
| luckily the spec I got claims to be a simplified version, I do hope so...
No, it is not, the HyperSpec (ANSI standard) is a standard. Maybe Common Lisp is just not for you.
| oh yeah, I have no access to a real lisp machine so info about how one is | put together might be helpful.
Maybe you just need a Common Lisp environment that has already been built for you?
/// -- In a fight against something, the fight has value, victory has none. In a fight for something, the fight is a loss, victory merely relief.
cr88192 <cr88...@hotmail.com> writes: > maybe at a later date one could alter a scheme interpretter into a cl > interpretter, I don't know.
maybe at a later date one could alter an esperanto understander into an english understander, too. certainly it's simpler to start with esperanto. i just don't see the point.
> for me all of this is new domain (but I try anyways)...
just learn the languages separately and use them for a while on their own terms. you don't do yourself a service by pretending that java is c++ nor vice versa. nor will you learn much about either language by staying in the subset that both support, if any.
cl and scheme are similarly related.
i think you are taking the long, difficult road to understanding. but you're welcome to try.
On 30 Mar 2002 13:54:26 -0800, lab.stih...@unidavi.edu.br (Fred Stihler) wrote:
>I was looking for some info on what would be a good lang for general >purpose programming. What I mean it: is it fast? is it good for >database systems? is it good for GUI programmin (on ms windows >mostly)? Well, I know that I would know better if I go and read all >about it. But the problem is that there is too many langs out there >and too many books about it. I would spend several years just to >decide what lang would be the better choice to star learning.
You want to learn programming? If you are a total beginner, I think it's a better idea to start with scheme instead of common lisp. It's a simpler lisp dialect that has been designed for teaching. Besides, there are _great_ (and I mean _great_) books that use it to teach programming.
Try any of these books: In order of increasing difficulty
"The Schemer's Guide" (Available at www.schemers.com) "How to design programs" "Scheme and the art of programming" "Concrete abstractions" "Structure and intepretation of computer programs" (Esse é foda ;-)
Don't worry about GUI and database stuff right now. That's trivial, and as soon as you master basic concepts such as data and procedure abstraction, or common program design techniques, learning those things will be very easy.
* Fernando Rodríguez | You want to learn programming? If you are a total beginner, I think it's | a better idea to start with scheme instead of common lisp. It's a | simpler lisp dialect that has been designed for teaching.
I strongly disagree. Scheme destroys the minds of programmers much more and much worse than BASIC is rumored to do. In order to learn to use any other programming language, a Scheme-trained programmer has to forget all of Scheme and relearn everything from scratch. This is doable, but such a horribly inefficient way of doing things.
| "How to design programs"
I have to admit, though, this looks like a _great_ book.
| "Structure and intepretation of computer programs" (Esse é foda ;-)
I no longer think this is a great book. It teaches differences where no basis for comparison has been laid.
/// -- In a fight against something, the fight has value, victory has none. In a fight for something, the fight is a loss, victory merely relief.
cr88192 <cr88...@hotmail.com> writes: > I don't know what I am doing, that is why progress is slow... > scheme seems like it will be easy to implement, so that is what I will try > to create... > maybe at a later date one could alter a scheme interpretter into a cl > interpretter, I don't know... or maybe just strip off and replace it... > scheme seems good enough for now...
There is a book that shows how to express one language in terms of the other, you might find it useful to get a feeling for the task:
``Lisp in Small Pieces'' by Christian Queinnec
Regards, -- Nils Goesche Ask not for whom the <CONTROL-G> tolls.
> >>>>> "FS" == Fred Stihler <lab.stih...@unidavi.edu.br> writes:
> FS> is it good for GUI programmin > FS> (on ms windows mostly)?
> This depends on what implementation you buy.
> For free implementations on MS Windows you will not find a GUI system > polished enough to be both good and usable out of the box by a novice. > (Folks: flame me if I am not right.) If you know how to program GUIs > under Windows, Corman (www.corman.net) gives you full access to the > windows api but doesn't wrap a lispy toolkit on top of it AFAIK.
As much as I'd *love* to increase the level of vitriol in this group, I'll refrain from flaming you.
It so happens that I've been programming a little game in Corman Lisp with my daughter. It is true that Corman Lisp does not provide an API like CLIM. It does, however, come with some code that wraps the windows message pump with some CLOS classes so you can simply write some methods and let the generic function dispatch handle the details. This is much easier than interfacing to the raw windows API.
So if you have some familiarity with how windows programs work (vis-a-vis messages, windows, device contexts, etc.) the Corman lisp API will work just fine.
As far as performance goes, it's more than adequate. The little breakout game I've been helping my daughter with runs at a refresh rate of 30 frames per second and is only consuming 2% or so of the processor. (The lisp is yielding its timeslice when it finishes a frame.) GC pauses are almost unnoticable.
> b) The price of Allegro Common Lisp is quite high (above USD 4000.- for > the personal edition; and a little bit a lot higher for the enterprise > edition; the last information was: USD 10000.-). Though, there is a free > evaluation copy available but in the long run this is not the solution. > And they even charge (in addition) for every copy of your program you > sell to a customer.
> c) LispWorks from Xanalys has competive prices. They even have got a > free copy of their version for private users; but do not fall for to > believe you can use it on a daily basis. The evaluation copy has got > very limited heap sizes and it is only intented for training purposes > (maybe a Lisp course in high school).
Corman Common Lisp is priced quite reasonably, too.
> Citation: "Basic Lisp techniques", by Cooper, Jr. (the foreword is > authored by Franz Inc):
> "Other languages have tried to mimic CL, with limited success. Perl, > Python, Java,C++,C#, -- they all incorporate some of the features that > give Lisp its power, but their implementations tend to be brittle".
> Sorry, but the above sentence is ridiculous!
Looks ok to me.
Perhaps you think other languages have not tried to mimic CL? Or perhaps they had unlimited success? Or maybe that Perl, Python, C++, C# don't incorporate any of the features that give Lisp its power? Or that their implementations aren't brittle?
No, wait, I've got it. There's actually TWO sentences there. You're objecting to the period at the end. Well, I suppose a semicolon might be better.
On Sun, 31 Mar 2002 21:04:29 -0500, cr88192 <cr88...@hotmail.com> wrote: > I got a copy of the ansi spec, and am almost intimidated by the size... > hopefully I really don't have to read that much...
Understanding why the HyperSpec is not intimidating is part of the learning process of Common Lisp. Hint: Common Lisp is not a toy, it was created by experienced designers to solve large and complex problems in industry and research. This is not a "for dummies" or "teach yourself in 21 days" language.
On Sun, 31 Mar 2002 18:34:19 -0500, cr88192 <cr88...@hotmail.com> wrote: > I have been programming lisp (actually: scheme) for... 2 months... > I still do most of my work in c as one can't really use lisp so much for os > programming...
This is really funny. If by "os" you mean "operating system", then you are wrong. Lisp was also used to write some of the most powerful operating systems in the history of computing.
> but since I am limited in knowlege of either one there may be details in > the way... > maybe I should finish reading r5rs...
cr88192 <cr88...@hotmail.com> writes: > oh yeah, I have no access to a real lisp machine so info about how one is > put together might be helpful. my design is basically making an > interpretter the secondary "core" of the os, the first "core" holds all the > basic system stuff (mm, ints, timing...). drivers are located outside > either core. the idea is that programs will sit on top of the cores and > drivers (collectivly known as the kernel). > is this concept design good? > as of yet the real line between parts is a little less clear...
OS coders in comp.lang.lisp. I actually got a little bit tired of wannabe OS codes in de.comp.lang.assembler.x86 and I only wanted to tell you that planning is more important than anything else. It will be especially unimportant whether your design is "good", if you fail in implementation. I do *not* have as much programming experience as most posters here (perhaps 3 years hobby programming), but this is a lesson I often had to learn.
I even once self belonged to the doomed group of people believing to be able to produce an perhaps useful mini operating system. I still believe one man is able to produce something like this, but not without having spent some time with planning.
> There is a book that shows how to express one language in terms > of the other, you might find it useful to get a feeling for the task:
> ``Lisp in Small Pieces'' by Christian Queinnec
i second this recommendation, it is a wonderful, but a demanding book; in my view it is the true heir to "anatomy of lisp" but it may be too scheme-centric for some.
oz -- www.cs.yorku.ca/~oz | if you couldn't find any weirdness, maybe york u. computer science | we'll just have to make some! -- hobbes
Erik Naggum <e...@naggum.net> writes: > In order to learn to use any other programming language, a > Scheme-trained programmer has to forget all of Scheme and relearn > everything from scratch.
This is directly contradicted by the experience of those universities that use Scheme to teach elementary programming--MIT, Oberlin, Rice, and others. There is no particular difficulty in moving on to other languages and other styles of programming.
> > In order to learn to use any other programming language, a > > Scheme-trained programmer has to forget all of Scheme and relearn > > everything from scratch.
> This is directly contradicted by the experience of those universities > that use Scheme to teach elementary programming--MIT, Oberlin, Rice, > and others. There is no particular difficulty in moving on to other > languages and other styles of programming.
Look up the thread ``one small function'' or so. Seems to be not so easy...
Regards, -- Nils Goesche Ask not for whom the <CONTROL-G> tolls.
> In order to learn to use any other programming language, a Scheme-trained > programmer has to forget all of Scheme and relearn everything from > scratch.
* Thomas Bushnell, BSG | This is directly contradicted by the experience of those universities | that use Scheme to teach elementary programming--MIT, Oberlin, Rice, and | others.
My education is from the University of Oslo, Informatics Department, which brags that its senior staff invented Simula and object-oriented programming. They thought, for many years, that their students were not hampered by, indeed benefited from, learning Simula in their introductory courses. Industry, students, etc, disagreed strongly. Now they teach Java. At the University of Bergen, the same story played out.
For some reason, I do not generally trust people who would be seriously financially or prestigeously damaged if the argument they make turned out to be untrue, which is why I tend to push the prestige button on people to see if their stake is personal. Some, like you, tend to take this very deeply personally, but prove to be untrustworthy because of it.
| There is no particular difficulty in moving on to other languages and | other styles of programming.
There is ample evidence here and elsewhere to the contrary. That you say something does not make it true. When you jump out to contradict me, there is reason to believe it not even true to begin with. All this crap about writing your advisors and now your department proves that you lack the integrity and intellectual honesty that would have made you useful int his forum. However, as long as you can be seriously hurt by being a retarded prick in your department, it is likely that you manage to fake a reasonably conforming student and obey those rules that are necessary to get your degree, but none others, just like that line about your boss that you claim people misunderstood. So when you say something that simply contradicts something I have said, we have reason to believe that (1) you would be hurt if the truth I have spoken came out, and (2) your inability to deal with arguments leads you to attack the person and want to ambarrass and make unpleasant noises devoid of contents. Instead, just provide valid and useful counter-information. I do not think you can do that any more than ozan s yigit can, but feel free to change my mind -- I will if you provide different facts. That is the difference between the two of us.
/// -- In a fight against something, the fight has value, victory has none. In a fight for something, the fight is a loss, victory merely relief.
cr88192 <cr88...@hotmail.com> wrote: > I can read well enough, I just don't really read fast and I don't like > reading mass amounts of stuff. I rather like things to be hopefully concise.
> please don't call me illeterate.
> by "simplified" I had meant: not massivly long... > I have before read long books, ie: my sql book was about that long, but I > took about 2 months...
> I like smaller time frames, ie: a few hours...
> in my mind one can blame english more than text, as it is the mass of > english like semantics that I don't like...
Pretending that you can learn anything meaningful in an hour's worth of reading is just silly.
A university degree requires committing on the order of four years, and it's easy enough to conclude "That wasn't enough; I need the MSc/Ph.D" and find that the process takes on the order of ten years. -- (reverse (concatenate 'string "moc.adanac@" "enworbbc")) http://www.ntlug.org/~cbbrowne/linux.html Rules of the Evil Overlord #81. "If I am fighting with the hero atop a moving platform, have disarmed him, and am about to finish him off and he glances behind me and drops flat, I too will drop flat instead of quizzically turning around to find out what he saw." <http://www.eviloverlord.com/>
> Pretending that you can learn anything meaningful in an hour's worth > of reading is just silly.
it is funny sometimes how long advancing generally takes... sometimes I wonder why I can't just seem to cram large amounts of information and just start making stuff... I guess that is life...
> A university degree requires committing on the order of four years, > and it's easy enough to conclude "That wasn't enough; I need the > MSc/Ph.D" and find that the process takes on the order of ten years.
mostly I just think: if it takes that long to explain it, how much longer would it take to implement... scheme seems as if it would be easier to implement, just under the idea that it is minimalist. or have I been missing something?
ok, I could drop the idea of trying to support both, and maybe think about it later.
for now I think I will continue with what I was doing before: reading r5rs and fiddling with my kernel... I don't know, I may read ansi spec and look at the workings of a few cl interpreters. I will think.
* cr88192 <cr88...@hotmail.com> | I can read well enough, I just don't really read fast and I don't like | reading mass amounts of stuff. I rather like things to be hopefully concise.
Then you are at such a disadvantage in contemporary IT that you should work really hard to improve your reading speed. Double it, then double it again. A regular paperback page of prose (say, something by Tom Clancy or John Grisham) should take no more than 15 seconds to read with no loss of comprehension, and the ISO standard for Ada should take no more than 5 minutes per page, on average.
| in my mind one can blame english more than text, as it is the mass of | english like semantics that I don't like...
As long as you do not like it, that dislike will always stand between you and mastering it. Make up your mind to like it, work hard to get really good at it, and you will like it. This applies to all things you want to learn well. If you cannot like something, leave it behind and find something else that you can. Life is too long to spend it on things you do not like or become good at what you have to do.
/// -- In a fight against something, the fight has value, victory has none. In a fight for something, the fight is a loss, victory merely relief.
Erik Naggum wrote: > * cr88192 <cr88...@hotmail.com> > | I can read well enough, I just don't really read fast and I don't like > | reading mass amounts of stuff. I rather like things to be hopefully > | concise.
> Then you are at such a disadvantage in contemporary IT that you should > work really hard to improve your reading speed. Double it, then double > it again. A regular paperback page of prose (say, something by Tom > Clancy or John Grisham) should take no more than 15 seconds to read with > no loss of comprehension, and the ISO standard for Ada should take no > more than 5 minutes per page, on average.
when I was younger I was supposedly mildly dyslexic, if that has any real bearing on reading speed.
I really don't like reading fiction books either for similar reasons I don't like long books... I can just watch movies...
luckily at least I can read code at a much faster rate than I can read text, I don't really know why. often when reading code I use page down comparred with scrolling, but text is the opposite.
a little off topic, I once tried to write a small description of lambda calculus (where I was trying to explain it in a much more compact way than a book I was reading, which took a whole chapter...): { lambda calculus is a system of substitution. you will have a "lambda expression" that will perform operations by being applied to expressions. each will have the symbol lambda followed by some variable, this may be several levels deep (here I will use L to denote lambda). after this there is an expression (for which what is being combined with is substituted into). consider: Lx.x2 , this may be combined with some other expression by enclosing it in parenthesis, then it is combined with something: say dog, in which case you have (Lx.x2)dog which converts to dog2 , I will use -> to indicate this process. this works because dog was substituted in for x. each lambda term will have an associated variable (which whatever is substituted in for in the expression). after this the lambda term disappears (as it was used). these are combined in a left to right order. if the variable associated with the lambda term does not exist, then nothing is substituted in. if the variable exists within the expression and is part of a lambda term then the variable is referred to a being bound within the expression. variables that are part of a lambda term but do not exist within the expression are unbound, and ones that are not associated with a lambda term but are in the expression are referred to as free. consider: LxLy.x and LxLy.y, in the first y is unbound, and in the second x is unbound. consider each is combined first with dog and then with cat. ((LxLy.x)dog)cat -> (Ly.dog)cat -> dog, and ((LxLy.y)dog)cat -> (Ly.y)cat -> cat. when multiple layers of parenthesis are involved the inmost are evaluated first, then it moves outward. consider if these were used as true and false (true=LxLy.x, false=LxLy.y), then a statement could be made if=LaLbLc.(((a)b)c) that could select between terms based on the condition of a. thus: ((((if)false)dog)cat) would evaluate to cat, and ((((if)true)dog)cat) would be dog. consider: LxLy.xz, in this expression x is bound, y is unbound, and z is free. free variables are a hairy mess in my opinion, as it is always possible for the variable to adversely effect the expression (except if say it were combined with 0, then z would be irrelevant). lambda calculus can be quite useful.
}
and, like this, the book did not really explain how it can really be used...
I wrote similar for predicate logic as well, but I will not include it...
* cr88192 <cr88...@hotmail.com> | when I was younger I was supposedly mildly dyslexic, if that has any real | bearing on reading speed.
So was I. Thosuands of hours of hard work cured it completely. Dyslexia is the result a persistent problem in how reading and writing is taught, not a disorder. All students benefit from a very different way to read and write than the stupid ways that only accidentally produce people who can spell correctly and read fast. In brief, words are really images made up of strokes. I consider the individual letter approach to those strokes vastly superior to the ideographic scripts. If you have not learned to see words as images, not as individual characters, by the time you are ten years old, it takes an _enormous_ effort to fix it, but trust me: it is worth it. Nothing beats the written word's ability to save you time in learning from somebody else's experiences, skills, and wisdom. Just make up your mind to like it, then work hard to actually like it.
/// -- In a fight against something, the fight has value, victory has none. In a fight for something, the fight is a loss, victory merely relief.
I'm bouncing this back over to comp.lang.lisp, as it's probably more of "general interest" than of my interest.
On Mon, 01 Apr 2002 20:30:49 GMT, the world broke into rejoicing as "cr88192 sydney" <cr88...@hotmail.com> said:
> >A really interesting project to take on might be to look at OpenMCL, > >and consider writing an IA-32 code generator for it that might allow > >using it on IA-32 platforms. > from what I have seen of things I think with cl one might try to build > the underlying os from the lisp standpoint than building lisp from the > os standpoint, I may be wrong...
Counterargument:
Getting an OS working involves a whole lot of fiddling around figuring out how to interface with: a) Disk drives; b) Graphics cards; c) Keyboards; d) Motherboards, CPUs, memory buses
Keeping up with the regular "churn" of hardware changes means you'll be liable to need to modify details on an annual basis, and you'll have to very tightly specify what hardware must be used.
After all, if you wrote a nifty display manager for an nVidia RIVA last year, you'd have found by now that the model you supported isn't commercially available anymore.
If your goal is to continually struggle with the continual hardware changes, then that's the nature of your project. OS makers have been known to "punt" and basically say "Nope; we don't support hardware other than this tiny limited set."
For instance, you need not bother trying to use Plan 9 on a system with an Adaptec SCSI controller; they don't support that at all. And it won't work with nVidia video hardware.
You'll be left with that very sort of challenge, of, on the one hand, having to pick and choose some tiny set of compatible hardware, and, on the other, regularly rewriting parts of the system to ensure that there's _some_ current hardware on which your OS can run.
The alternative: Use Linux or FreeBSD as the OS kernel, and XFree86 as the graphics "kernel." You can thus avoid writing much if any kernel code, and can run on the regularly-extended set of hardware that they support.
The question is then of how deeply to start trying to have the system "be Lisp."
The "rather deep" choice would involve replacing Unix init with a Lisp program that basically populates a system that from there on down looks like Lisp, perhaps with an XFree86 process alongside to provide graphical services.
> either case either a cl or scheme os would probably be a starting point for > making a better os... > also as one can probably guess I work in the create/trash/rewrite process > (often reusing any good code...).
> are there similar projects to mine I can look at?
Certainly there are. See the URL below for links to what largely amount to failed projects. -- (reverse (concatenate 'string "gro.mca@" "enworbbc")) http://www3.sympatico.ca/cbbrowne/lisposes.html We are Pentium of Borg. Division is futile. You will be approximated. (seen in someone's .signature)
Typos are not caused by dyslexia. Dyslexia is not even about typos. But I probably type faster than I should, because I try not to waste too mcuh time on trivial things.
/// -- In a fight against something, the fight has value, victory has none. In a fight for something, the fight is a loss, victory merely relief.