Hi Mark! Thanks for answering that question about the macro being implemented.
I was maybe wrongly assuming, that, since it is on Oleg's website, many of the very proficient schemers know it. It seems to be a nice macro, but I have no idea how much time Oleg spent on it. I got the feeling though, that he sometimes revises articles on his website. I think this article about assertion macro also has been revised. It not being in Guile, I will have to make a choice of using that macro and adding it as a sort of dependency or simply using the standard library one's assert macro. It will probably not be a big issue to use a macro that is not in the standard library, as long as I note that somewhere and make it clear, that it might work differently, if one does not use that macro. I don't really find the R6RS assert macro unsatisfactory. It is only that I saw something else that looked nice ; ) Thanks! I also recently had a thought: "How can he just put the code like that on a website and not in some repository instead?" – I think the answer is, that the code is concise, short and works in most Schemes, since they mostly have a lot in common, so that he does not need to put much info there about "What if I use <some Scheme dialect here>?". Thanks to standardization of Scheme. Zelphir On 4/23/19 2:54 AM, Mark H Weaver wrote: > Hi Zelphir, > > Zelphir Kaltstahl <zelphirkaltst...@gmail.com> writes: > >> I was looking for an assert facility in Guile and found the following: >> >> https://www.gnu.org/software/guile/manual/html_node/rnrs-base.html#rnrs-base >> >> (Search for assert there to find it on the page.) >> >> However, while searching, I also found something that looks even better: >> >> http://okmij.org/ftp/Scheme/assert-syntax-rule.txt >> >> Is that anywhere implemented in Guile already? > No. > >> (In case it is not implemented: What are the reasons for not providing >> that one? It looks a little bit more useful than the one I found.) > Well, no one has suggested it until now, and moreover I didn't even know > it existed :) Do you know if it's seen much use? Do any other Scheme > implementations include it? > > Correct me if I'm wrong, but I get the impression that this is something > that Oleg hacked up in an hour and posted ~15 years ago, but that it's > never seen much use. Also, I'm personally not fond of the API, which is > quite unconventional. > > The thing about assertion macros is that (1) they are usually trivial, > and (2) I'm not aware of any consensus in the Scheme community on what a > non-trivial assertion API should look like. I suspect this is why > there's no SRFI for assertion macros, despite the fact that anyone can > write a SRFI. > > For those who find the R6RS 'assert' macro unsatisfactory, I'm inclined > to suggest that each project should feel free to define their own > assertion macro according to their needs and preferences. > > Having said that, if you think you know a non-trivial assert API that > other Schemers would like to use, feel free to publish a library or > write a SRFI. If it becomes popular, we could consider including it > with Guile. > > Regards, > Mark