|
This channel is intended for people just starting with the Raku Programming Language (raku.org). Logs are available at irclogs.raku.org/raku-beginner/live.html Set by lizmat on 8 June 2022. |
|||
| Dr.Doom | hey does raku support vectorized operations ? | 02:31 | |
| like 0..10 + 1 giving 1..11 | |||
| nemokosch | (0..10) + 1 does give 1..11 but I wouldn't call this vectorization and I actually don't even like this behavior | 02:36 | |
| 0..10 is a Range, defined by two endpoints, not really a vector or a list | 02:37 | ||
| and the fact that you can "numerically add" a Range and a number, and then obtain something that isn't even a number, seems quite crazy | |||
| m: (0..10) >>+>> 1 andthen .say # this is much more like a vectorized operation | 02:38 | ||
| Raku eval | (1 2 3 4 5 6 7 8 9 10 11) | ||
| nemokosch | m: (0..10) + 1 andthen .say | 02:39 | |
| Raku eval | 1..11 | ||
| nemokosch | docs.raku.org/type/Range#sub_infix:%3C+%3E this is why it works and it's tempting to open an issue for it | 02:40 | |
| @Dr.Doom oh right, the illustration of the problem came handy while I was phrasing the issue... | 03:00 | ||
| if (0..10) + 1 is 1..11, what would you expect (0..10) + (1..1) to be? | 03:01 | ||
| Dr.Doom | 1..11 | ||
| nemokosch | ||if your answer was 12, you have superhuman powers|| | ||
| so yeah xD | 03:02 | ||
| Dr.Doom | :m say (0..10) + 1 | ||
| why is it so inconsistent | 03:03 | ||
| nemokosch | the range + number case has been overloaded in both orders | ||
| but the range + range hasn't | |||
| frankly, the range + range case starts to fall apart for me | 03:04 | ||
| especially if we take multiplication or division | |||
| would range1 / range2 be start1 / start2 .. end1 / end2, and either way, why | 03:05 | ||
| so my point is actually that it would be better to get 12 for (0..10) + 1 as well | 03:06 | ||
| that would be transparent behavior: numeric coercion for the range | |||
| not sometimes this, other times that | 03:07 | ||
|
05:08
stanrifkin joined
|
|||
| stanrifkin | Is there an rakutidy? | 05:09 | |
|
05:42
CIAvash joined,
stanrifkin left
|
|||
| Dr.Doom | why can't it have behavior similar to apl or numpy? | 06:29 | |
|
07:17
CIAvash left
08:01
MasterDuke left
|
|||
| rcmlz | Ah yes, that allows then for circular references ... nice feature. | 08:47 | |
| Oh, just testet it and it does not work. m: # declare the existence of a class / role without defining it role Commutativity { ... } class Shape does Commutativity { ... } class Rectangle is Shape { ... } class Circle is Shape { ... } class Triangle is Shape { ... } | 09:34 | ||
| m: role Commutativity { ... } class Shape does Commutativity { ... } class Rectangle is Shape { ... } class Circle is Shape { ... } class Triangle is Shape { ... } | |||
| Raku eval | Exit code: 1 ===SORRY!=== Error while compiling /home/glot/main.raku 'Rectangle' cannot inherit from 'Shape' because 'Shape' isn't composed yet (maybe it is stubbed) at /home/glot/main.raku:3 | ||
|
10:04
lizmat_ joined
10:06
RakuIRCLogger left
10:07
lizmat_ left,
lizmat joined
10:09
RakuIRCLogger__ left
11:41
tea3po joined
11:44
teatwo left
11:58
tea3po left,
tea3po joined
11:59
tea3po left,
tea3po joined
|
|||
| nemokosch | if you say what that behavior is, it gets easier | 12:51 | |
|
13:09
tea3po left,
tea3po joined
|
|||
| rcmlz | no behaviour, just ... as stub implementation. | 13:35 | |
| ab5tract_ | well, you do eventually have to define the thing :) | 13:51 | |
| rcmlz | I got it know. The issue is the "is Shape". If I first declare it without inheritment it works | 14:01 | |
| m: m: role Commutativity { ... } class Shape does Commutativity { ... } class Rectangle { ... } class Circle { ... } class Triangle { ... } class Rectangle is Shape { "the real thing" } | 14:02 | ||
| Raku eval | Exit code: 1 ===SORRY!=== Error while compiling /home/glot/main.raku 'Rectangle' cannot inherit from 'Shape' because 'Shape' isn't composed yet (maybe it is stubbed) at /home/glot/main.raku:7 | ||
|
15:01
tea3po left,
tea3po joined
|
|||
| Dr.Doom | $n,* ~~ s/1/10/,..* | 15:16 | |
| why might this be giving an error? | |||
| anyone? | |||
| nemokosch | what would this be? doesn't look like valid syntax | 15:44 | |
| Dr.Doom | thats why i am asking | 15:45 | |
| i want to genrate a succesive list 1,10,100,1000.... | |||
| nemokosch | is 1, 10, 100 ... * not good enough? | ||
| geometric series can be inferred from three values | 15:46 | ||
| Dr.Doom | no | ||
| $n can be any number | 15:47 | ||
| nemokosch | then what is the definition again? | ||
| Dr.Doom | 1st "1" is to be replaced with "10" | ||
| of every element of the array | |||
| for example 101,1001,10001,.... | 15:48 | ||
| nemokosch | I think there are several bad ideas here, like generating "quasi numbers" as strings with string operation - but that in itself wouldn't make it not work | 15:50 | |
| smartmatching to the s/// quoting structure is an in-place substitution that returns the match that got substituted | 15:51 | ||
| meaning, both the in-place mutation will probably fail (or cause damage to some variable even) and the return value will be problematic | 15:52 | ||
| the .subst method should work instead | |||
| m: 101, *.subst(1, 10) ... * andthen .[^10].say | 15:53 | ||
| Raku eval | (101 1001 10001 100001 1000001 10000001 100000001 1000000001 10000000001 100000000001) | ||
| nemokosch | of course these are strings, not numbers | ||
| m: 101.subst(1, 10).&dd | 15:55 | ||
| Raku eval | "1001" | ||
| nemokosch | there | ||
|
17:59
MasterDuke joined
19:24
Nemokosch joined
|
|||
| librasteve | m: 101, *.subst(1, 10) ... * andthen .[^10] .sum | 21:29 | |
| Raku eval | |||
| librasteve | 101, *.subst(1, 10) ... * andthen .[^10] .sum .say | 21:30 | |
| m: (101, *.subst(1, 10) ... * andthen .[^10]).sum.say | 21:31 | ||
| Raku eval | 111111111110 | ||
| librasteve | anyway my point is that in raku strings that contain numbers can be treated as numbers | 21:32 | |
|
22:04
Nemokosch left
23:41
teatwo joined
23:44
tea3po left
|
|||