|
00:13
qorg11 left
00:14
qorg11 joined
07:05
dakkar joined
08:31
destroycomputers left
08:32
destroycomputers joined
09:49
neither joined
09:54
discord-raku-bot left,
discord-raku-bot joined
10:21
wingfold joined
10:56
razetime joined
12:20
neither left
13:10
razetime left
13:25
razetime joined
14:13
qorg11 left
14:26
qorg11 joined
15:06
razetime left
15:20
neither joined,
razetime joined
15:41
dakkar left
16:00
razetime left
17:21
zacts joined
17:40
zacts left
18:03
zacts joined
18:11
zacts left
19:12
wingfold left
|
|||
| neither | hi how can I make a public attribute of an object Nil in the class definition? | 20:01 | |
| aim is to signal null-ness of that attribute | 20:02 | ||
| `has $.attr = Nil` triggers `Any` to be assigned | |||
| and `has $.attr := Nil` isn't supposed to work I guess | |||
| or should I do this some other way? | 20:03 | ||
|
21:24
jgaz joined
21:30
jgaz left
|
|||
| MasterDuke | it has to be typed as `Mu`. e.g., `has Mu $.attr = Nil` | 21:31 | |
| otherwise assigning Nil sets something to its default value. and the default default is `Any` | 21:32 | ||
| Nemokosch | isn't checking .defined a legitimate option, rather than checking for Nil? | 21:44 | |
| gfldex | <@297037173541175296> definedness and Nil are different answers to different questions. | 21:58 | |
| neither | ty MasterDuke but `$obj.attr` is now `Mu` not Nil; it's as if `has $.attr = Mu;` I think | 22:04 | |
| gfldex | m:``` | 22:06 | |
| class C { | |||
| has Mu $.attr = Nil; | |||
| submethod TWEAK { $!attr := Nil } | |||
| } | |||
| dd C.new.attr; | |||
| ``` | |||
| m:``` | |||
| class C { | |||
| has Nil $.attr; | |||
| } | |||
| dd C.new.attr; | |||
| ``` | |||
| gfldex | neither: You you really want to stick Nil into an attribute, you can. But you are most likely got Nil wrong. | 22:07 | |
| We got Nil because we want Failure. Since, we now got Nil we have to deal with assignment of Nil to containers. By definition, Nil reverts a container to it's default value. | 22:09 | ||
| What does it mean to have Nil as a default value in that regime? | |||
| neither | let me ask this way | 22:10 | |
| if you have a linked list, every node but the head has a parent | |||
| how would you code the `$head.parent`'s value? | 22:11 | ||
| i'm not insisting on Nil, I thought it was conventional way to signal None-ness | |||
| gfldex | I would use a singleton that is an undefined value. | ||
| MasterDuke | `Empty` perhaps | ||
| gfldex | m: class Node { has Node $.parent; has Node $.next; } dd Node.new.parent.defined; | 22:24 | |
| camelia | ===SORRY!=== Error while compiling <tmp> Strange text after block (missing semicolon or comma?) at <tmp>:1 ------> { has Node $.parent; has Node $.next; }⏏ dd Node.new.parent.defined; expecting any of: infix … |
||
| gfldex | m: class Node { has Node $.parent; has Node $.next; }; dd Node.new.parent.defined; | ||
| camelia | Bool::False | ||
| Nemokosch | guess what, defined it is 😄 | 22:28 | |