On Fri, 03 Apr 2026 21:39:28 +0700
Andrew Tropin <xxxxxx@trop.in> wrote:
> On 2026-04-03 11:56, Jakub T. Jankiewicz wrote:
>
> > The name `is`, in its current form, is problematic. It doesn't make sense
> > semantically. `is` should compare two values not compare if something is
> > truthy.
> >
> > In normal sentence you have:
> >
> > x is y
> >
> > so the prefix notation should be:
> >
> > (is x y)
> >
>
> Hi Jakub!
>
> Your idea is very reasonable. Especially for the case with two
> arguments. For one argument `is` can be read differently.
>
> (define your-idea "`is` should compare two values")
> (is (very-reasonable? your-idea))
> (is (string=? your-idea "`is` should assert truthness"))
>
> Try instead of `x is y` pattern use `it is so that ...`.
>
> it is so that your-idea conforms very-reasonable? predicate.
>
> is it so?
but in your "is" the "what" is missing, you can't understand the code by just
reading it, you will need to read the documentation? Every symbol in R7RS have
the reason for the check (symbol? string?). `is` in your case is like using
question mark without a proper noun.
>
> There are a few thoughts on the topic:
> 1. I'm not a native english speaker, but for me such reading make sense.
> So, probably is asserting thruthness of its argument can be a valid
> option. I may be wrong, but would be glad to hear input
>
> 2. It's much shorter. The test looks cleaner and easier to read.
> Subjective, of course.
>
> 3. assert is an overloaded term and `assert` is very likely provided in
> many implementations and in r6rs. `is` is free from assert's "baggage".
`is` is short and not taken, ok. But it doesn't make sense with one argument.
Is is exactly like `=` that also doesn't make sense with one argument, it
checks nothing.
Consider different name if you must use one argument like `valid?` or
`true?`. Since this is what you're checking.
--
Jakub T. Jankiewicz, Senior Front-End Developer
https://jakub.jankiewicz.org
https://lips.js.org
https://snapp.md
https://koduj.org