В мини-канренских библиотеках Racket, где находится condi? - PullRequest
0 голосов
/ 17 ноября 2018

В языке мини-канрен есть четыре условных оператора: conda, conde, condi и condu (здесь описано ). Мне известны две библиотеки мини-канрен для Racket, которые мне известны (обе описаны здесь ). Ни один из них не реализует condi.

Мое впечатление (на полпути к прочтению «Разумного мошенника», который minikanren.org называет «Книгой») заключается в том, что condi важен: это единственное условие, которое принимает «справедливое разделение» путем чередования ветвей, так что вы не можете не зацикливайтесь на бесконечной петле в ветви, которая никогда не заканчивается, когда завершается какая-то другая.

РЕДАКТИРОВАТЬ: Возможно, мне удалось реализовать condi сам, здесь . В Reasoned Schemer conde отличается от condi только тем, что последние два аргумента для mplus переворачиваются в mplusi, так что это то, что я реализовал. Но это не работает более справедливо, чем conde, насколько я могу судить.

...