Re:Rails is not written in Ruby
by tyingq on Friday February 04, 2022 @06:10PM
(#30214804)
I understand why Python does it this way, but this is usually where someone points out Ruby doing:
Versus Python's:
[ Parent
| on HN ]
Re:Rails is not written in Ruby
by dragonwriter on Friday February 04, 2022 @06:17PM
(#30214872)
I generally like Ruby better than Python, but Python's choice on
_join_ being a string method on the thing stuck between elements rather than an collection method on the things whose elements are getting something stuck between is better.
Why do you think it's better?
I don't use either Ruby or Python but I think that the first way is more natural.
Re:Rails is not written in Ruby
by renewiltord on Friday February 04, 2022 @06:37PM
(#30215102)
Interesting. I model `array.join(',')` or the equivalent Py `','.join(l)` in my head as ultimately (pseudo-code):
foldLeft(tail(array), str(head(elem)), (acc: String, elem: T) -> acc + ',' + str(elem))
Which makes the array method easier to understand than the string method. Funny how I thought it was _obvious_, but you find the opposite obvious.Why? somearray is the important piece, the string is just a bit of spacing. Put the important thing first, don’t bury the lede.
After years of Python I can't remember which one of these are correct
1 ",".join(["a", "b"])
2 ["a", "b"].join(",")
3 ",".split("a,b")
4 "a,b".split(",")
These method names feel like active form so 1 and 3 should be correct but it's 1 and 4 despite "a,b" obviously is not splitting "," but it's splitted by itIn Ruby it's 2 and 4.
I'm out of luck twice but at least Ruby has a and b always to the left and the comma always to the right so I always remember it.
Re:Rails is not written in Ruby
by tedunangst on Friday February 04, 2022 @07:13PM
(#30215451)
print('Hello '.join('world!'))