Logic programming

MiniKanren

miniKanren is a family of programming languages for relational programming. As relations are bidirectional, if miniKanren is given an expression and a desired output, miniKanren can run the expression "backward", finding all possible inputs to the expression that produce the desired output. This bidirectional behavior allows the user to constrain both the input to the program and the result of the program simultaneously. miniKanren performs an interleaved search which will eventually find any solution that exists, even if any one branch of the search tree is infinitely long and contains no solutions. If no solution exists, miniKanren may search forever if the search tree is infinite. An example of miniKanren code is evalo, a relational goal that relates expressions to the values that they evaluate to. When evalo is called in miniKanren like so: (evalo q q), it will generate quines, that is, expressions q that when run will evaluate to themselves. The book The Reasoned Schemer uses miniKanren to demonstrate relational programming, and provides a complete implementation in Scheme. The core of the language fits on two printed pages. The Scheme implementation of miniKanren is designed to be easily understood, modified, and extended. αleanTAP is a program written in αKanren, an extension of miniKanren for . Given a theorem, it can find a proof, making it a theorem-prover. Given a proof, it can find the theorem, making it a theorem-checker. Given part of a proof and part of a theorem, it will fill in the missing parts of the proof and the theorem, making it a theorem-explorer. There are implementations of miniKanren in Haskell, Racket, Ruby, Clojure, JavaScript, Scala, Swift, Dart and Python. The canonical implementation is an embedded language in Scheme. The Clojure core.logic library was inspired by miniKanren. The name kanren comes from a Japanese word (関連) meaning "relation". (Wikipedia).

Video thumbnail

levitron

This levitron manufactured by my friend İzzet Özgöçmen. We enjoyed playing with it.

From playlist Izzet Özgöçmen

Video thumbnail

MicroRaman Sample Pump

I'm putting this here for a talk I'm giving next week. It is how we pump our nanoparticle samples for optical measurements. I'm sure I could write a fluids problem about it!

From playlist Off Topic

Video thumbnail

A Liter Of Light *Official Version*

Check out this mini-docu that we shot! http://www.playwiththejunglegym.com/

From playlist Amazing Stuff

Video thumbnail

全髋关节置换术

(English Version: https://www.youtube.com/watch?v=DosqbEy8ecY) http://www.nucleusinc.com/ - 这个三维动画介绍了右髋关节的全髋关节置换术。该手术包括切开、露出髋关节、放置髋臼修复假体(窝)、割掉发炎的股沟头、放置股骨头假体(球)。

From playlist 在中国医学动画

Video thumbnail

Defining Microservices | SHORTS

What are microservices? What is microservice architecture for and why are they more complex than they look on the surface? In this #shorts episode, Dave Farley give his definition of microservices. For a fuller exploration of Microservices, see Dave's video "The Problem with Microservices

From playlist Microservices

Video thumbnail

Quaternions EXPLAINED Briefly

This is a video I have been wanting to make for some time, in which I discuss what the quaternions are, as mathematical objects, and how we do calculations with them. In particular, we will see how the fundamental equation of the quaternions i^2=j^2=k^2=ijk=-1 easily generates the rule for

From playlist Quaternions

Video thumbnail

Mini Solar Powered Radio Pack -Part 1

Just a little portable solar powered case for a radio...

From playlist Solar Powered Projects

Video thumbnail

Test for a Difference in Means, Independent Samples, Minitab, Data in Two Columns

This demonstrates how to conduct a hypothesis test for a difference in means between independent samples. It uses Minitab with raw data and each sample is in its own column. This demonstration corresponds to Introduction to Statistics, Think & Do, by Scott Stevens (www.StevensStats.com)

From playlist Minitab and Minitab Express Demonstrations

Video thumbnail

Walking Gears

A simple gears mechanism moving a frame structure. Used in robot toys. Free 3D model at https://skfb.ly/o6X7q.

From playlist Walking Machines

Video thumbnail

Clojure Conj 2012 - Challenges for Logic Programming

Challenges for Logic Programming by: Steve Miner The core.logic library (a port of miniKANREN) has sparked an interest in logic programming among Clojure users. Back in the '80s, logic programming inspired the Japanese Fifth Generation Computer Systems Project, which was poised to leap pa

From playlist Clojure Conf 2012

Related pages

Binary relation | Quine (computing) | Scala (programming language) | Automated theorem proving | Clojure | Racket (programming language) | Tree traversal | Logic programming | Dart (programming language)