|
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. |
|||
|
00:15
jgaz left
00:18
Manifest0 left
03:08
frost joined
03:10
frost left
03:29
rf left
05:00
frost joined
05:04
frost left
07:55
Heptite left
08:35
Manifest0 joined
09:05
dakkar joined
09:16
ab5tract joined
09:33
ab5tract left
10:06
ab5tract joined
10:41
ab5tract left,
ab5tract joined
11:00
ab5tract left
11:20
ab5tract joined
12:09
ab5tract left
12:33
frost joined
13:37
rf joined
|
|||
| rf | . | 13:47 | |
| lizmat | rf: any of the channels with tellable will give you your messages... no need to . on different channels, unless you meant something else by it | 13:49 | |
| rf | Oh didn't know that. Thanks! | 13:54 | |
|
16:38
Heptite joined
17:35
dakkar left
17:38
hizibiz joined
18:32
tg57 joined
20:58
QhpAptyj9hj0RQwM joined
21:21
hizibiz left,
hizibiz joined
21:30
codesections joined,
codesections left
21:34
tg57 left
21:37
hizibiz left
22:00
frost left
|
|||
| Yeuph | If I'm initializing classes within some set operations like $classTest = Stop.new(thing => $num) (|) Stop.new(thing => $num) (|) Go.new(thing => $num) (|) Jump.new(thing => $num) (|) Walk.new(thing => $num); | 23:09 | |
| how can I access the elements of #classTest? | 23:10 | ||
| Nemokosch | docs.raku.org/images/type-graph-Set.svg | 23:12 | |
| Yeuph | I don't know what that means lol | ||
| Nemokosch | point being, Sets are kind of Hashes still | ||
| Yeuph | well say I want to perform some logic on Stop.new(thing => $num) after the algebra | 23:13 | |
| how do I grab it? | |||
| Nemokosch | basically, a usual set would consist of Pairs, the item you pushed into being the key of the pair | ||
| Yeuph | by accessing my $classTest SetHash that it's initialized in | 23:14 | |
| Nemokosch | m: my Set() $demo = <alma körte barack körte alma SZÉN>; say $demo.keys; | ||
| Raku eval | (alma SZÉN körte barack) | ||
| Nemokosch | there are also funky methods for taking one element, including the one you already named: grab | 23:15 | |
| (well, not necessarily only one but you get the idea - elements, rather than the whole thing at once) | |||
| docs.raku.org/type/Set | 23:16 | ||
| Yeuph | gotta play with this for a bit, thanks | ||
| Nemokosch | tenor.com/view/cat-typing-typing-o...f-21481919 | 23:17 | |
| Yeuph | basically lol | ||
| would I just type the string representing the initialized class in the set? | 23:22 | ||
| like say Go.new(thing => 1) (elem) $classTest; | |||
| it's returning false | |||
| Nemokosch | well a custom object would have reference type semantics | 23:23 | |
| Yeuph | my ultimate goal here is to move classes - some of which being initialized in the algebra - into other sets | ||
| Nemokosch | if you know Python, that's like saying it's not "hashable" by default | 23:24 | |
| Yeuph | I don't 😦 | ||
| Nemokosch | but just like in Python you can implement the magic method for hashing, there is something similar for Raku as well - the WHICH method | ||
| Yeuph | docs.raku.org/routine/WHICH | 23:25 | |
| this? | |||
| Nemokosch | yes | ||
| docs.raku.org/routine/WHICH#(Mu)_method_WHICH | |||
| Yeuph | so what, it has a special string assigned to it as an object; and even if that string doesn't match the "words or whatever" that the element in the set has | 23:26 | |
| it would likely access it within the set? | |||
| Nemokosch | I can't understand this | 23:27 | |
| Yeuph | I'll do some reading and work on my own and if I get stuck I'll come back | ||
| thanks man | |||
| (my question was in reference to the first sentence of the WHICH method page: "This returns a string that identifies the object. ") | 23:28 | ||
| Nemokosch | docs.raku.org/type/ValueObjAt | 23:29 | |
| this page has a good example I'd say | |||
| Yeuph | Yeah I can see how this will work but I think figuring it out is a bit more work than I'm wanting to do here before bed | 23:43 | |
| I think I'll get this working tomorrow | |||
| but thanks, this does look like it'll do it once I figure it out | 23:44 | ||
| Nemokosch | yes, this is mostly something you need to do once in order to get these "hashability" features and then === and these hash-based data types will just work the way you expect | 23:45 | |
| Yeuph | right | ||
| I'll have some functions giving my the hashes | |||
| Nemokosch | it's all up to what representation you decide on; the default would be some kind of address | 23:46 | |
| Yeuph | then I'll check the sets for those | ||
| Nemokosch | I think Sets themselves are reference types | ||
| m: say <1 2 3>.Set === ❤️ 2 1>.Set | |||
| Raku eval | Exit code: 1 ===SORRY!=== Error while compiling /home/glot/main.raku Missing required term after infix at /home/glot/main.raku:1 ------> say <1 2 3>.Set ===⏏ ❤️ 2 1>.Set expecting any of: prefix term | ||
| Nemokosch | bruh discord | ||
| Yeuph | lol | ||
| Nemokosch | m: say <1 2 3>.Set === <3 2 1>.Set | 23:47 | |
| Raku eval | True | ||
| Nemokosch | hmmm, maybe not, then? let's see | ||
| m: <1 2 3>.WHICH.say | |||
| Raku eval | List|5635469267696 | ||
| Nemokosch | oops, that's the List | ||
| well, you can see that the List has the default, reference-based behavior, by the way | 23:48 | ||
| it's a random number; you could create another one with the same content and it would be another number | |||
| m: <1 2 3>.Set.WHICH.say | |||
| Raku eval | Set|6AF0F9BD7836549B13210B50833463F26D63E18B | ||
| Nemokosch | the Set has something trickier... I don't know by heart, need to look it up | 23:49 | |
| Yeuph | It seems like I'll be able to use the ObjAt:(hash?) (elem) someSet | ||
| eh I'm tired | 23:50 | ||
| I'll come back tomorrow lol | |||
| Nemokosch | github.com/rakudo/rakudo/blob/2022...Set.pm6#L8 um | ||
| Yeuph | my eyes aren't cooperating with reading anymore | ||
| Nemokosch | let's say, the hashing of a Set is not trivial | 23:51 | |
| Yeuph | well computers don't do set algebra | ||
| sooo | |||
| making one do it | |||
| is serious business | |||
| that's why I'm not even trying with C++ | |||
| someone did the work for me here already lol | |||
| Nemokosch | but yeah, you can create a WHICH that isn't this complex | ||
| that really is like that code snippet; type + attribute values | 23:52 | ||
| Yeuph | Yeah, I may get a rain day tomorrow (bricklayer) so I'll have plenty of time to play | ||
| w00t! | |||
| Nemokosch | good luck to that 😂 | 23:54 | |
|
23:57
jgaz joined
|
|||