Closed drkameleon closed 3 years ago
Good morning! 🌞
Yep, that can go straight in! Thaaaaaaanks! 🙏😊
I've had a question... since I was going through the Min library and wasn't sure if you'd want something like that, how and where it would go.
What about a range
function?
((1 10) range (1 2 3 4 5 6 7 8 9 10) ==) assert
Do you think something like that would be nice? And, if so:
a) where would you put it? (which module I mean)
b) do you think it would have to take a "step" argument by default? E.g. ((1 10 2) range (1 3 5 7 9) ==) assert
c) do you think its limits should be inclusive (<10
vs <=10
)?
Quite a few questions that's why I didn't dare to implement it - yet. :)
Oh yes please! It's so annoying when that's missing in languages lol...
As for the questions:
a) I would put it in num, I think. Also, give me a good reason why not to put the binary operators you added in num as well 😜 I was thinking about it and I am not sure if it makes sense to put them in their own module, unless something else could be added to it... what do you think? Not that it makes a huge difference anyway!
b) Well, you have a quotation parameter there! That's pretty much the only chance you have to use optional parameters in min 😉. Seeing that it's a fairly simple operator, you could add a check that if the quotation has a third parameter you can use it as a step, otherwise it's 1 by default 😊
c) yes... they are inclusive in Nim and Ruby as well I think.
a) I would put it in num, I think. Also, give me a good reason why not to put the binary operators you added in num as well 😜 I was thinking about it and I am not sure if it makes sense to put them in their own module, unless something else could be added to it... what do you think? Not that it makes a huge difference anyway!
Makes perfect sense. That's what I was thinking.
Regarding the new bitwise
operators, to be honest I decided to put them in a different module a) in order to separate a bit the logic, b) in case you don't think it should be included in the same release as the Num module (chances are most people will need +
, but very few would need to bit-and
numbers). In any case, feel free to do whatever you think is more convenient.
b) Well, you have a quotation parameter there! That's pretty much the only chance you have to use optional parameters in min 😉. Seeing that it's a fairly simple operator, you could add a check that if the quotation has a third parameter you can use it as a step, otherwise it's 1 by default 😊
Perfect point. (I'm still getting the hang of Min :))
c) yes... they are inclusive in Nim and Ruby as well I think.
Despite all the Dijkstra hype, that's what I've been thinking as well. That aside, non-inclusive ranges confuse me... too much.
A few additions to the Num library (+ unit tests, + documentation):
Good morning! :)