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 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.


Type relations for ForeignCode
raku-type-graph ForeignCode ForeignCode Any Any ForeignCode->Any Callable Callable ForeignCode->Callable Mu Mu Any->Mu

Expand chart above

1 [↑] This 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