4 ms·
Somewhat related - be wary of implicit parameter passing in function pipelines. For example, Try ['10', '10', '10'].map(Number.parseInt) in your browser console
by fs_tab 2y ago
Somewhat related - be wary of implicit parameter passing in function pipelines. For example, Try ['10', '10', '10'].map(Number.parseInt) in your browser console. What's actually being called is:
Number.parseInt('10', 0)
Number.parseInt('10', 1)
Number.parseInt('10', 2)
- iso8859-1 2y agoTyping fixes this, and anonymous records make it even better. JavaScript lacks typing, and then they decided on a weird signature for the callback...
- simon04 2y agoUnfortunately typing doesn't fix this. The 2nd callback function argument of Array.map is (index:number), and the 2nd argument of Number.parseInt is (radix:number). It's a very nasty issue to debug.
- iso8859-1 2y agoIf there were typing, there would be no reason to not use newtypes[0] for radix and index. These values should only be explicitly unwrapped to plain numbers. It would look like this newtype Radix = Radix { radixToWord :: Word } newtype Index = Index { indexToWord :: Word } [0]: https://wiki.haskell.org/Newtype https://wiki.haskell.org/Newtype