On Fri, Oct 12, 2018 at 5:08 PM ToddAndMargo via perl6-users < perl6-us...@perl.org> wrote:
> >> On 10/12/18 12:52 PM, Curt Tilmes wrote: > >> > You could make a subset for the List your're trying to return: > >> > > >> > subset liststrint of List where .[0] ~~ Str && .[1] ~~ Int; > >> > sub RtnOrd( Str $Char --> liststrint) ... > >> > >> I am confused. > >> > >> I want to get the --> syntax correct for `return $Char, ord($Char)` > > On 10/12/18 1:49 PM, Brad Gilbert wrote: > > That would be `List` > > > > sub RtnOrd( Str $Char --> List ){ $Char, ord($Char) } > > say RtnOrd "A" > > # (A 65) > > $ p6 'sub RtnOrd( Str $Char --> List ){return $Char, ord($Char)}; say > RtnOrd "A";' > (A 65) > > But "List" does not tell my what is in the list. > You can create a brand new type, a subset of Lists where the first element (we refer to with [0]) is of type Str (~~ Str) and the second element of the List (we refer to with [1]) is of type Int (~~ Int). Define it like this: subset list-str-int of List where .[0] ~~ Str && .[1] ~~ Int; then you can say that your routine returns a list that looks like that: sub RtnOrd( Str $Char --> list-str-int)