Today is the first day that I feel my imaginary perl6 adoption timeline may not be that far off.
The big news is that Pugs 6.0.7 is out, with examples/life.p6 and examples/mandel.p6 ported from the parrot tree; both runs just fine!
Also thanks to hcchien, we now have a beginning of synopsis-based unit tests in t/ (most tested using eval ""), which should grow into a more comprehensive acceptance test suite.
Another big news is that I'm moving I/O primitives and mutable variables forward on the schedule. I still want to do a purely functional ("Featherweight") evaluator inside Perl6, maybe as "func { ... }" instead of "sub { ... }", but popular feedback convinced me that getting something to work in the Real World is a better idea.
To that end, today I have finished:
There were also large number of lexer and evaluator tweaks to get life.p6 and mandel.p6 running at a reasonable speed.
Also, I've just been talking with Patrick Michaud (the perl6 compiler guy) on IRC #perl for a couple hours. Some interesting notes:
So. Lots of interesting developments. Stay tuned!
Autrijus, you are amazing!
Re:thank you and some questions
jeff on 2005-02-18T11:27:20
ok, poking into GHC docs, it seems the answer to the '$' operator question is related to templates, and is discussed at:
http://www.haskell.org/ghc/docs/latest/html/users_guide/template-haskell.html
no time to absorb it just yet, but will sleep on it for now;)
jeffRe:thank you and some questions
autrijus on 2005-02-18T11:48:42
Hmm, I sense a need of Perl6::Pugs::FAQ...The use of $ is not Template Haskell... The binary operator
($)
simply means "apply function";
f $ g
is equivalent tof g
.
The use of
$
in Haskell code is for fixing precedence. For example, to calculate f(g(3)), one can writef $ g 3
, or using the function composition, as(f . g) 3
, butf g 3
will not work, as it means f(g, 3).
"Yet Another Haskell Tutorial" is a fine online tutorial. The books I'm currently reading are:
- Algorithms : A Functional Programming Approach (International Computer Science Series) By: Fethi A. Rabhi, Guy Lapalme
- Types and Programming Languages By: Benjamin C. Pierce
- Introduction to Higher-Order Categorical Logic (Cambridge Studies in Advanced Mathematics) By: J. Lambek, et al
- Advanced Topics in Types and Programming By: Benjamin C. Pierce (Editor)
- Basic Category Theory for Computer Scientists (Foundations of Computing) By: Benjamin C. Pierce
- Purely Functional Data Structures By: Chris Okasaki
- The Haskell School of Expression: Learning Functional Programming through Multimedia By: Paul Hudak
- Haskell: The Craft of Functional Programming (2nd Edition) By: Simon Thompson
I recommend the "Algorithms" book for Haskell newcomers; the other two introduction books by Thompson and Hudak are also quite pleasant to read.
To trace the latest source tree, use one of the three source repositories linked from the Pugs page.
As for development tools... I'm currently still using Vim, but Eclipse's Haskell support is excellent.