Tomas Volf kirjoitti 2.3.2025 klo 17.18:
...

Would you happen to have some references to non-trivial code bases using
this notation?  It seems interesting, so I would like to see how it
looks in real-world projects.


See https://sourceforge.net/p/theme-d-intr/code/ci/master/tree/examples/, files *.th?.  The code is in Theme-D but you can probably follow it if you know Scheme. Note that the notation may not be used rigorously in this project.


[..]
Pairs are prefixed by p, lists by l
Every list can be considered a pair, right?  So l- is for proper lists,
and p- for the rest?  But for example SRFI-1 talks about three different
types of lists, but still considers them "lists".  Could you go into bit
more details when to use p- and when l-?


Yes, l- for proper lists and p- for the rest. I have not thought about this in more detail.



[..]
Procedures having no side effects and having boolean return value are suffixed
by ?.
So unless the procedure has ->bool in it, it should not end in ??  I
fairly often write predicates that return either #f or non-#f value but
not limited to booleans.  Example would be:

--8<---------------cut here---------------start------------->8---
(define (env-var-set? var)
   (getenv var))
--8<---------------cut here---------------end--------------->8---

This returns #f if variable is not set, and the (string) value
otherwise.  Based on the wording above, this procedure would be misnamed
under this notation, since the name ends with ? despite not returning
boolean value?


Yes. Note that many Scheme predicates (such as member, for-all and exists) that may return an arbitrary value for "true" return a boolean value in Theme-D (and are thus suffixed by ?).



Have a nice day,
Tomas

- Tommi

--
Kotisivu / Homepage:http://www.iki.fi/tohoyn/
Sähköposti / E-Mail:tommi.hoynalan...@iki.fi
GPG-sormenjälki / GPG fingerprint:
55F4 2477 7155 3528 5CB2 2B7A BB86 1FDE 4046 0F83
FT, Debian-ylläpitäjä / PhD, Debian Maintainer

Reply via email to