Hi, Tell me what you think:
Exploring Programming Language Architecture in Perl.
Some of you may remember I posted a link to this many moons ago.
I haven't really given up on it but it's become something of a spare-time project, I've finished the object-oriented extension and started writing the chapter on continuations. I've corrected a lot of bloopers in the earlier chapters and I've also learned far more about XML and CSS than anyone should have to :-), but at least it looks prettier now.
Bill H
perl -e 'print sub { "Hello @{[shift]}!\n" }->("World")'

Replies are listed 'Best First'.
Re: RFC: more of that almost-book
by ww (Archbishop) on Oct 15, 2006 at 21:36 UTC
    Prettier, yes.

    And the meat and potatoes are improving too.

    Onwards and upwards!
Re: RFC: more of that almost-book
by tmoertel (Chaplain) on Oct 16, 2006 at 14:22 UTC
    Bill,

    Cool.

    One bit of feedback on the typography: The book uses some characters that are not available in many fonts. For example, the THIN SPACE (U+2009) is used after :: in Perl::Identifiers::Like::This. I suspect your goal was typographic refinement, but the result, at least when the characters are not available, is exacly the opposite: the browser inserts a big, fat I-can't-find-that-character-in-the-font-so-I'll-use-this-boxy-all-purpose-placeholder glyph instead. The result looks pretty bad: Perl::[]Identifiers::[]Like::[]This.

      Yeah, I was just messing about, trying to achieve a discretionary line-break (I'd really have liked a zero-width space for that in fact :-)
      I'll remove them when I next push (they're added as part of the transform, not inline in the source).
      Bill H
      perl -e 'print sub { "Hello @{[shift]}!\n" }->("World")'

        Discretionary line breaks can be achieved with the Soft Hyphen (­, I think). However, it doesn't work in Firefox (or other gecko-based UAs), and where it is supported elsewhere, it will add a hyphen before the break. Don't know if that helps or hurts, but might give you a place to start.

        <radiant.matrix>
        Ramblings and references
        The Code that can be seen is not the true Code
        I haven't found a problem yet that can't be solved by a well-placed trebuchet
Re: RFC: more of that almost-book
by Ovid (Cardinal) on Oct 16, 2006 at 13:42 UTC

    You mention in the book that PScheme isn't quite the same as standard Scheme. It might be nice to have an appendix detailing the differences.

    Update: Side note: I was quite happy to see you including tests. That's fantastic. Any chance this will be on the CPAN at some point?

    Cheers,
    Ovid

    New address of my CGI Course.

      Hi,
      Appendix - maybe, but it would end up being pretty long :-)
      CPAN - maybe, but I really don't think of PScheme as a "proper" language, its purpose is purely as a vehicle for discussing programming language concepts. Also, it's not really in the right namespace (Lang::PScheme would be better, but I'm too lazy to change all of that right now.) I'll certainly make tgz's available for each version from my site at some point, but the code is still somewhat in flux: I actually have separate CVS branches for each "version" and merge fixes/changes in one version upwards through each of the subsequent versions (so the diffs in the book remain sensible).
      Tests - glad you approve :-) I recently ran v-0.0.9 through Devel::Cover and got something like 90% coverage without even trying, but that's mostly down to the recursive nature of the code.
      Bill H
      perl -e 'print sub { "Hello @{[shift]}!\n" }->("World")'
Re: RFC: more of that almost-book
by holli (Abbot) on Oct 16, 2006 at 11:35 UTC
    You know I'd love to read your "book in the making", if only I could find a printable version. I'm a bed reader ;-)


    holli, /regexed monk/
      As I've mentioned before, I'm writing it in XML and using XML::LibXML2 to transform it, primarily to XHTML.
      I do have an alternative transform to LaTeX (and thence to pdf) but that has fallen behind.
      I'll try to get it back up to spec and make a pdf for you, but It might take me a day or so.
      Bill H
      perl -e 'print sub { "Hello @{[shift]}!\n" }->("World")'