Ashley Winters <[EMAIL PROTECTED]> writes:

>> <grin> Patches welcome.
>
> Excellent...
>
> Forgive any formatting errors, I have mail issues.

Thanks, applying. With a few caveats.

> @@ -62,6 +62,7 @@
>  class SchemePair is SchemeExpr {
>    my $nil //= class is SchemeExpr {
>      method is_nil {1}
> +    method is_pair {0}
>      method car { fail Exception:
>                   msg => "car: expects argument of type <pair>, given
> ()" }
>      method cdr { fail Exception:

That change isn't necessary. If you look you'll see that the anonymous
class of which $nil is the only instance is a subclass of SchemeExpr,
not SchemePair.

> @@ -77,12 +78,13 @@
>    method car { .value.key }
>    method cdr { .value.value }
>    method is_pair { 1 }
> +  method is_nil { 0 }

SchemeExpr's AUTOLOAD handles that automagically.

>    method AUTOLOAD {
>      .NEXT::AUTOLOAD unless $AUTOLOAD =~ /:?c([ad]+)r$/;
> -    my @ops = reverse split '', $1;
> -    my $val = $_[0];
> +    my @ops = reverse split '', $1;   # $1? Apocalypse 5...
> +    my $val = @_[0];

YARGH! I thought I'd got rid of all those 5isms.
>  
>    method new_scope($self:) { ref($self).new(__parent__ => $self) }
>  
> -  method bind_primitive($name, &func) {
> -    .bind(SchemeSymbol.new($name), 
> -          SchemePrimitive.new( $name => &func ));
> +  method bind_primitive(PAIR @primitives) {
> +    for @primitives -> $primitive {
> +      .bind(SchemeSymbol.new($primitive.key), 
> +            SchemePrimitive.new( $primitive ));

Hmm... does that declaration syntax work? I really hope so 'cos it's
lovely.


>    }
>  
>    my method parent { .{__parent__} }
>    
>    method set($self: SchemeSymbol $key, SchemeExpr $value) {
>      given .exists($key) {
> -      when defined { .value($value) }
> +      when defined { .{key} = $value }

D'oh. Should be C<.{$key}> thought.

> -      '+' => $expr, $context -> {
> +      '+' => -> $expr, $context {

Oops. C<sub operator:&lambda { -> *@_ }> anyone?

-- 
Piers

   "It is a truth universally acknowledged that a language in
    possession of a rich syntax must be in need of a rewrite."
         -- Jane Austen?

Reply via email to