----- Original Message ----- From: mAsterdam <[EMAIL PROTECTED]> Date: Wednesday, September 8, 2004 8:31 pm Subject: Re: multiple languages clarification - newbie
> Joseph Ryan wrote: > > >>Can someone provide clarification on what mixing languages will > >>look like in practice, or point me to where its explained? > > <delurk> Warning. This is perl 7 and a half: > > #!/usr/bin/perl -w > use prolog; > > prolog: # prolog tells us: > > needs_support_of(Db, Da):- > designer(A, Da), > designer(B, Db), > needs(A, B). > > designer(perl, larry). > designer(parrot, dan). > needs(perl, parrot). > > prolog. ; # or some other end-quote > > for needs_support_of { > print; # prints 1st in the signature of the unification, > # predicate, 2nd .. nth in the signature of the > # match (for one member of the result). > } > > __END__ > > </delurk> You could do that in Perl6 (or any Parrot based language) as: eval " needs_support_of(Db, Da):- designer(A, Da), designer(B, Db), needs(A, B). designer(perl, larry). designer(parrot, dan). needs(perl, parrot). ", "prolog"; for needs_support_of() { print; # prints 1st in the signature of the unification, # predicate, 2nd .. nth in the signature of the # match (for one member of the result). } Assuming, of course, that there exists a prolog->parrot compiler. You could even have your syntax if you use a macro: macro prolog is parsed(/ \: ([ <[^p]>+ :: | <!before ^^prolog\.\s*$$> p ]+) /) { eval($_, "prolog"); } - Joe