class ForeignCode
Error ReportCollection examples

Rakudo-specific class that wraps around code in other languages (generally NQP)

class ForeignCode does Callable {}


ForeignCode is a Raku wrapper around code that is not written originally in that language; its intention is to use these blocks of code in Callable contexts easily. For instance, subs have some anonymous functions that are actually ForeignCode.

sub does-nothing(){};
say $_.name ~ ' → ' ~ $_.^name for &does-nothing.^methods;
# OUTPUT: «<anon> → ForeignCode␤<anon> → ForeignCode␤soft → Method␤…» 

This script will map method names to their class, and it shows that routines, in particular, have several methods that are actually ForeignCode instead of Methods.


method arity

method arity()

Returns the arity of the enclosed code.

method count

method count()

Returns the number of arguments the enclosed code needs.

method signature

method signatureForeignCode:D: )

Returns the signature of the enclosed code.

method name

method name()

Returns the name of the enclosed code, or <anon> if it has not received any.

method gist

method gistForeignCode:D: )

Returns the name of the code by calling name.

method Str

method StrForeignCode:D: )

Returns the name of the code by calling name.

1This is a Rakudo specific class, and as such it is advisable not to use it in your own code, since its interface might change or even disappear in the future. This is provided here only as a reference « Back »