{"slug": "minikanren", "name": "miniKanren", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 4, "commenters": 5, "warners": 0, "score": 3.507, "rising": -1.31, "first": "2025-11-12", "latest": "2026-08-23", "why": "Not exactly prolog, but logic programming implemented as a library/DSL: https://minikanren.org/", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 5, "neutral": 0, "compare": 1, "warn": 0}, "spark": [2, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "Not exactly prolog, but logic programming implemented as a library/DSL: https://minikanren.org/", "kind": "", "icon": false, "domain": "minikanren.org", "github_repo": null, "official_url": "http://minikanren.org", "pricing": "", "aliases": ["miniKanren"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 754213632, "item_id": 47138352, "url": "https://news.ycombinator.com/item?id=47138352", "by": "boxfire", "date": "2026-02-24", "version": null, "stance": "recommend", "quote": "I am a huge fan of the work towards putting this in kanren as \u03bbKanren", "excerpt": "I am a huge fan of the work towards putting this in kanren as \u03bbKanren: https://www.proquest.com/openview/2a5f2e00e8df7ea3f1fd3e86195aba6a/1?pq-origsite=gscholar&cbl=18750&diss=y A few of my own experiments in this time with unification over the binders as variables themselves shows there\u2019s almost always a post HM inference sitting there but likely not one that works in total generality. To me that spot of trying to b", "context": "", "use_case": "logic programming research", "switched_from": "", "story": "\u039bProlog: Logic programming in higher-order logic"}, {"id": 746278016, "item_id": 46642376, "url": "https://news.ycombinator.com/item?id=46642376", "by": "dragonwriter", "date": "2026-01-15", "version": null, "stance": "recommend", "quote": "\u201cSomething like Prolog\u201d as a part of a more traditional language is kind of the idea of miniKanren, which has been implemented for many languages", "excerpt": "\u201cSomething like Prolog\u201d as a part of a more traditional language is kind of the idea of miniKanren, which has been implemented for many languages: https://minikanren.org/", "context": "", "use_case": "", "switched_from": "", "story": "My Gripes with Prolog"}, {"id": 744427392, "item_id": 46526712, "url": "https://news.ycombinator.com/item?id=46526712", "by": "khaled_ismaeel", "date": "2026-01-07", "version": null, "stance": "recommend", "quote": "Not exactly prolog, but logic programming implemented as a library/DSL: https://minikanren.org/", "excerpt": "Not exactly prolog, but logic programming implemented as a library/DSL: https://minikanren.org/", "context": "", "use_case": "Logic programming library", "switched_from": "", "story": "Stop Designing Languages. Write Libraries Instead (2016)"}, {"id": 734441424, "item_id": 45902589, "url": "https://news.ycombinator.com/item?id=45902589", "by": "dragonwriter", "date": "2025-11-12", "version": null, "stance": "recommend", "quote": "in the form of miniKanren implementations", "excerpt": "While usually using native syntax rather than strings, somethign like that exists for most languages of any popularity (and many obscure ones), in the form of miniKanren implementations. https://minikanren.org/", "context": "", "use_case": "Relational programming in host languages", "switched_from": "", "story": "Learn Prolog Now (2006)"}, {"id": 734440880, "item_id": 45902555, "url": "https://news.ycombinator.com/item?id=45902555", "by": "naasking", "date": "2025-11-12", "version": null, "stance": "recommend", "quote": "Maybe try a Ruby Kanren implementation", "excerpt": "Maybe try a Ruby Kanren implementation: https://minikanren.org/ uKanren is conceptually small and simple, here's a Ruby implementation: https://github.com/jsl/ruby_ukanren", "context": "", "use_case": "", "switched_from": "", "story": "Learn Prolog Now (2006)"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["logic programming research", "logic programming library", "relational programming in host languages"], "compared": [], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=45900978", "title": "Learn Prolog Now (2006)", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=49399898", "title": "A Friendly Introduction to Racket", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47095266", "title": "\u039bProlog: Logic programming in higher-order logic", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46641348", "title": "My Gripes with Prolog", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46525640", "title": "Stop Designing Languages. Write Libraries Instead (2016)", "mentions": 1}], "sentiment_by_month": {"2025-11": {"recommend": 2}, "2025-12": {}, "2026-01": {"recommend": 2}, "2026-02": {"recommend": 1}, "2026-03": {}, "2026-04": {}, "2026-05": {}, "2026-06": {}, "2026-07": {}, "2026-08": {"compare": 1}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 790511920, "item_id": 49406995, "url": "https://news.ycombinator.com/item?id=49406995", "by": "BoingBoomTschak", "date": "2026-08-23", "version": null, "stance": "compare", "quote": "and this is both informed and pretty impartial from what I can read", "excerpt": "Instead of us two milling about: https://minikanren.org/minikanren-and-prolog.html (and this is both informed and pretty impartial from what I can read)", "context": "", "use_case": "", "switched_from": "", "story": "A Friendly Introduction to Racket"}, {"id": 754213632, "item_id": 47138352, "url": "https://news.ycombinator.com/item?id=47138352", "by": "boxfire", "date": "2026-02-24", "version": null, "stance": "recommend", "quote": "I am a huge fan of the work towards putting this in kanren as \u03bbKanren", "excerpt": "I am a huge fan of the work towards putting this in kanren as \u03bbKanren: https://www.proquest.com/openview/2a5f2e00e8df7ea3f1fd3e86195aba6a/1?pq-origsite=gscholar&cbl=18750&diss=y A few of my own experiments in this time with unification over the binders as variables themselves shows there\u2019s almost always a post HM inference sitting there but likely not one that works in total generality. To me that spot of trying to b", "context": "", "use_case": "logic programming research", "switched_from": "", "story": "\u039bProlog: Logic programming in higher-order logic"}, {"id": 746278016, "item_id": 46642376, "url": "https://news.ycombinator.com/item?id=46642376", "by": "dragonwriter", "date": "2026-01-15", "version": null, "stance": "recommend", "quote": "\u201cSomething like Prolog\u201d as a part of a more traditional language is kind of the idea of miniKanren, which has been implemented for many languages", "excerpt": "\u201cSomething like Prolog\u201d as a part of a more traditional language is kind of the idea of miniKanren, which has been implemented for many languages: https://minikanren.org/", "context": "", "use_case": "", "switched_from": "", "story": "My Gripes with Prolog"}, {"id": 744427392, "item_id": 46526712, "url": "https://news.ycombinator.com/item?id=46526712", "by": "khaled_ismaeel", "date": "2026-01-07", "version": null, "stance": "recommend", "quote": "Not exactly prolog, but logic programming implemented as a library/DSL: https://minikanren.org/", "excerpt": "Not exactly prolog, but logic programming implemented as a library/DSL: https://minikanren.org/", "context": "", "use_case": "Logic programming library", "switched_from": "", "story": "Stop Designing Languages. Write Libraries Instead (2016)"}, {"id": 734441424, "item_id": 45902589, "url": "https://news.ycombinator.com/item?id=45902589", "by": "dragonwriter", "date": "2025-11-12", "version": null, "stance": "recommend", "quote": "in the form of miniKanren implementations", "excerpt": "While usually using native syntax rather than strings, somethign like that exists for most languages of any popularity (and many obscure ones), in the form of miniKanren implementations. https://minikanren.org/", "context": "", "use_case": "Relational programming in host languages", "switched_from": "", "story": "Learn Prolog Now (2006)"}, {"id": 734440880, "item_id": 45902555, "url": "https://news.ycombinator.com/item?id=45902555", "by": "naasking", "date": "2025-11-12", "version": null, "stance": "recommend", "quote": "Maybe try a Ruby Kanren implementation", "excerpt": "Maybe try a Ruby Kanren implementation: https://minikanren.org/ uKanren is conceptually small and simple, here's a Ruby implementation: https://github.com/jsl/ruby_ukanren", "context": "", "use_case": "", "switched_from": "", "story": "Learn Prolog Now (2006)"}]}