chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-users] New Egg: miniKanren


From: Jeremy Steward
Subject: [Chicken-users] New Egg: miniKanren
Date: Tue, 16 Feb 2016 13:30:21 -0700
User-agent: Mozilla/5.0 (X11; Linux i686; rv:38.0) Gecko/20100101 Icedove/38.5.0

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hello all,

Hope you all find yourselves well. I am sending this today to announce the
1.0 release of the latest miniKanren implementation. There's a bit of history
here, so I'll try to summarize. However, if you're interested in seeing the
implementation use the following link:

    https://bitbucket.org/ThatGeoGuy/chicken-minikanren

We already have the "Kanren" egg, which provides the old Kanren language as
well as the miniKanren implementation from "The Reasoned Schemer" (Dan
Friedman, William Byrd, Oleg Kiselyov, MIT Press.). While this egg is great
for working through the examples in the book, it does not provide the latest
implementation of the miniKanren language (as it has evolved over the years).

The latest implementation of miniKanren (found
https://github.com/miniKanren/miniKanren) is unfortunately both very
different and incompatible with the language of the same name used in The
Reasoned Schemer. Although they are both similar, there are some notable change
s:

  1. condi no longer exists
  2. conde now behaves like condi (to provide stronger termination guarantees)
  3. else is removed as syntax from conde, conda, and condu
  4. the latest version introduces disequality constraints (=/=) as well as
     some type-constraint operators (absento, numero, symbolo, booleano).

After some discussion with the current maintainer (Alex Shinn), we have both
decided it is probably better to packaged the canonical implementation as a
separate miniKanren egg, while he has agreed to rename the mini-kanren module
in the "Kanren" egg to `reasoned-schemer` or some such. This means that
people working through The Reasoned Schemer can still use the implementation
that works with the book, while users coming from Clojure's core.logic or
Racket's miniKanren implementation can still use all the facilities that
they'll be used to in the latest version of the language.

I would be happy to answer any questions if there are any. Mario, could this
be added to the coop, or are there additional steps I must take first?

Best regards,
- -- 
Jeremy Steward
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJWw4bUAAoJEHVwwAZUeZnZ0p8QAKJH2MeT5E9vT2/2seuT0gex
tbq8XFyzNWaKTUO9t97Dew4vcKLCKL9iFOZPep4OihAb3FskjfxqYSCQxTdgK0PC
EBsDHNqaBdaZ7O3Olt9xLZ1MUb0cAtYsg1A2FHE6WPlPaT5tqGptOmcnJpRrSkx8
gnV5i5yCdwUxlaW8YXNOy8ZbJyuxF5DdGgBEirhkevyfYVDcYKcmAEf8WtXiXOS0
5VXYajS3LLyIGRi7TFo5sCBeqmd4rEKyNdF6eQK1Q9wGidA7Zh8Y469xqa/s03Y9
gccM8Njc9x7SId3TF7VQuIdKyfGNAY5pOKLPSTsEhzzB5tEEV7nJj4Jy7Ka+FgcU
NWBEINnj46Bkxk0bVi3azddDf1W8p0K3K0Jo5X3z+O7ekeXA3MnKUOAyGk1+6Sfl
fbDw2e7HhzYpgjaayWJ4Qb/aHq44uqBF/xtvUTBlGj9ZSrvwb8h8FzgpZulaW5+u
9yEtr5Qj7I/slW3u66ZpulzhkvgdJrzgg6OL/fsOcFvEI0vPUjMHxLA6AAO90ub+
IFcpGIf+kH2gmQHxs/nFE4CgrFm4J5DqaGb4+dRHkTmkfPFQFKauWYmFUxrOtFYl
1RZ4uzYZnYUgRCgsSnSHczrmLzlhDkj15X+xr+bNXNKxE6bFqVi8PD8tzdixtToK
In3tGWjUAN82WEAE/sKp
=5zJu
-----END PGP SIGNATURE-----



reply via email to

[Prev in Thread] Current Thread [Next in Thread]