7 ms·
I really like all the built-in functionality. As long as the doc is good I can live with the complexity.
by throwaway7645 10y ago
I really like all the built-in functionality. As long as the doc is good I can live with the complexity.
- throwanem 10y agoConsistency of inconsistency would be nice. For example, I don't see why Set "values" should ever be exposed anywhere, since the semantics of the collection type don't include them. Seems like a great big gotcha waiting to happen.
- gunnihinn 10y ago> Seems like a great big gotcha waiting to happen. In Perl? Never!
- justinator 10y agoWhere are they, "exposed". The post just says the values are always true and that you don't really need to care about them.
- throwanem 10y agoFrom the post: > Set types always have True as values, and since we don’t care about iterating over Pair objects in our loop, we use the keys [function] to get just the keys of the set: the email addresses. The impression I took away from that was that you needed to make sure to pass keys(@set) rather than just @set in the operator, or else you'd get weirdness in the result. Having just installed Rakudo and fired up a REPL to find out for myself what'd happen, I find: - that my understanding from the post was erroneous - that there's some kind of weird set/string coercion going on that isn't replicable in the terms the REPL uses to describe it - that the given examples do not reliably generalize - that nothing which seems to make sense actually works - that nothing which seems to work actually makes sense - that I'm now bleeding slightly from both caruncles. Having not closely followed the Perl 6 development process, I am very glad to see it has taken on board the frequently uttered and extremely well justified criticism of Perl 5 that it's not consistent enough, and that there are so many syntactic and semantic special cases that no one who doesn't heavily specialize in the language can use it very reliably.
- ab5tract 10y agoWhat are your expectations for reliable generalization? What were you expecting to work, in what way, that didn't work as you expected?
- throwanem 10y agoThe Rakudo REPL apparently doesn't save history outside a session by default, so I don't have the exact details of what I was trying to do. In attempting to recreate it, though, I did manage to discover that Perl 6 "sets" appear simply to be syntactic sugar around strings split on whitespace, except when they're not, sometimes. That's not necessarily a bad thing, but why call it a type? What is it actually giving me that I can't get without having to bind and learn to use a whole new keymap full of exciting Unicode characters that I'm not a mathematician and therefore will also need to learn to identify on sight?
- ab5tract 10y agoI've never used a Unicode operators myself and there are no requirements to use Unicode characters. Every Unicode operator has a "Texas" counterpart in 100% ASCII. This was mentioned in the OP. I think you are mistaking `<a b c d>` with a `Set`. `< >` is a shorthand for "give me a `List` of these words" (or in this case, characters). `<a b c d>.Set` would coerce you a `Set` from that list. The set operators coerce by default, so you can pass it a list of words without requiring you to coerce it yourself beforehand.
- throwanem 10y agoYeah, I cottoned to that eventually - it's short(er)-hand for Perl 5's qw() construct. I guess Set is a method (coercer!) of...lists? List-shaped things? Sets seem list-shaped, although indexing doesn't work by any syntax I could find, and certainly not by any that an @ sigil should suggest. Can I call Set on a set? Does it do something weird if I do? And if I'm going to deal with this kind of high weirdness, why not just bite the bullet and go with Haskell or even Urbit? This just feels like it's trying to out-Ruby Ruby, and Ruby is Ruby enough already. The OP had some snark to offer on the subject of "Texas" operators, and the documentation lists them by their Unicode glyphs. That they work I get. But I think it's reasonable to gather a sense of second-class citizenship from their presentation.
- gpvos 10y agoIn general, [Perl operators] do what you want, unless you want consistency. — man perlfunc (of Perl5)
- throwanem 10y agoI thought I remembered hearing part of the idea with Perl 6 was that there'd be less of that. Apparently I have mistaken a forlorn hope for a vague memory.