NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.
All the Perl that's Practical to Extract and Report
Stories, comments, journals, and other submissions on use Perl; are Copyright 1998-2006, their respective owners.
Go for it, and do it right! (Score:2)
Sounds like a great idea to me. I wish someone had taught me scheme at 11. I'd say do everything as functional as you can, though; no imperative style. That will be easy enough to learn later.
J. David works really hard, has a passion for writing good software, and knows many of the world's best Perl programmers
Re:Go for it, and do it right! (Score:1)
I think that strictly speaking, even sequencing operations is procedural, not functional.
So,
...) ...) ...)
(html-meta
(html-table
(html-footer
Is essentially procedural in nature.
The functional way to do this, I believe, would be something like:
(map html-gen
'((meta parm1 parm2 parm3)
(table parm1 parm2 parm3)
(footer parm1 parm2 parm3)))
Maybe I
Re:Go for it, and do it right! (Score:2)
I'm not as into Lisp and functional programming as I want to be, so I can't provide expert insight. All I can say is what I wish. :)
Definitely search out Paul Graham's material on the net and absorb.
Should I really go to the trouble of eliminating sequencing?
I am not educated enough to say on that, yet.
If I'm going to go this route, no setq's either. Just call the outer driver with literal lists.
I do think avoiding setq's is good.
I learned scheme followed by Lisp, and the way I was taught made it impossible to know you had an alternative to programming functionally until you learned otherwise. But that was 1998, and unfortunately I have not had the opportunity to use it all. It wasn't until recently I started hearing things that made me think, "If I want to make myself a hacker, I must learn functional programming and actually use it for a real project some day."
Another issue along the 'purity' lines is should I introduce function definition with the convenience syntax: (define (x a) ...)
or
(define x (lambda(a) ...))
I learned it with the second syntax, and it has always made more sense to me that way.
Maybe I should find a Scheme forum to discuss this, like comp.lang.scheme.
Bah! There are plenty of scheme programmers here (and I'm not talking about folks like me who can't remember 90% of what they learned). There's even a scheme compiler for parrot, I think. By all means seek out the other forum, but don't take the discussion away from here! :)
J. David works really hard, has a passion for writing good software, and knows many of the world's best Perl programmers
Reply to This
Parent
Re:Go for it, and do it right! (Score:1)
I'm familiar with Paul Graham, but from what I can tell, he leans heavily toward Common Lisp and is pretty advanced. I prefer stuff like SICP [mit.edu], HtDP [htdp.org], the refreshingly simple TYSiFD [neu.edu] and The Scheme Programming Language [scheme.com]. All online! None of these texts is appropriate for my 11 year old, but I'm using some of their approaches as inspiration.