This got me thinking, "If Raku had a Tuple type, that would be good for
this- maybe -"

and then I noticed https://raku.land/zef:lizmat/Tuple - a module that
provides Tuples

"- if we can declare the types of elements of a tuple, in a signature."

- well maybe here we hit the same issue as originally, since we can't
declare mixed types for an Array, nor any types for a List, perhaps we
can't do that for a Tuple either? And now I'm half-remembering a discussion
about this maybe 6+ years ago?

Searching for that got me looking at something related, Signature Literals,
https://docs.raku.org/language/signatures

etc... I'm not on a machine where I can test this, I imagine it doesn't
work, and there is already the already-working "MyPair" solution above.
still here is where I was going-

use Tuple;

sub x(--> Tuple[Bool,Str]) {
    my Str $s = "hello";
    my Bool $b = True;
    tuple($b, $s);
}

say x;

-y


On Mon, Oct 27, 2025 at 11:57 AM William Michels <[email protected]>
wrote:

> Wow Tom!
>
> I had to correct one line (`my Str $s = "foo";`),
>
> then got this return:
>
> `MyPair.new(b => Bool::True, s => "foo")`
>
> Very cool!
>
> Best, Bill.
>
> On Oct 27, 2025, at 07:02, Tom Browder <[email protected]> wrote:
>
> I don't think you can do what you want exactly. But I certainly may be
> wrong!
>
> Using a pair may do the trick, but my Pair foo outside a Hash is weak.
>
> The other way around it is to do something like this I use often:
>
> class MyPair {
>     has Bool $.b;
>     has Str $.s;
> }
>
> sub x(--> MyPair) {
>     my Bool $b = True;
>     my Str = "foo";
>     my $obj = MyPair.new(:$b,:$s);
>    $obj;
> }
>
> say x; # OUTPUT
>
> On Mon, Oct 27, 2025 at 05:34 ToddAndMargo via perl6-users <
> [email protected]> wrote:
>
>> On 10/27/25 3:13 AM, Tom Browder wrote:
>> > On Sun, Oct 26, 2025 at 19:46 ToddAndMargo via perl6-users <perl6-
>> > [email protected] <mailto:[email protected]>> wrote:
>> >
>> >     Hi All,
>> >
>> >     What am I doing wrong here?  I want
>> >     two things in my "returns".
>> >
>> >
>> >     [2] > sub x() returns Bool,Str {}
>> >     ===SORRY!=== Error while compiling:
>> >     Missing block
>> >     ------> sub x() returns Bool⏏,Str {}
>> >           expecting any of:
>> >               new name to be defined
>> >
>> >     Yours in confusion,
>> >     -T
>> >
>> >
>> > Return a List of a defined Bool and Str:
>> >
>> > sub x(--> List) {
>> >      my Str $s = "hello";
>> >      my Bool $b = True;
>> >      $b, $s;
>> > }
>> >
>> > say x;
>> > OUTPUT: (True hello)
>> >
>> > -Tom
>>
>> Hi Tom,
>>
>> Dang.  List does not tell me what they are.
>>
>> Thank you for the help.
>>
>> -T
>>
>
>

Reply via email to