Hacker News new | ask | show | jobs
by e12e 146 days ago
True, with early return - there's no need to actually nest with else.

Logically this still would be a case/switch though...

1 comments

The point was that logically it would be an array lookup by index.

There's no need for any conditional construct here whatsoever.

You'll note it has already constructed a string in the right order to do that, but then copped out with the if-else.

True enough. On that note, I had a look at the language reference - there's arrays - but also this:

    (char_at s index)        # Get ASCII value at index (0-based)
    (string_from_char code)  # Create string from ASCII value
So, you can pluck a character... From an UTF-8 string? What if the rendering used multibyte characters?
Well, we can see the string, and we can see that is uses plain ASCII.
In this case, sure. But what if we shifted to rendering with emojis or whatnot. What would the first ASCII character of the string be?
If you anticipate that need, you just store the gradient as an array of strings, and you still then only need a trivial lookup.
I was more commenting on the language design here; the idea of indexing into a UTF-8 string and returning an ASCII character. What does the index count? Bytes? There doesn't seem to be a way to get UTF-8 characters from strings?

Ed: There seems to be an UTF-8 library:

https://github.com/jordanhubbard/nanolang/tree/main/modules/...