# Questions tagged [prolog]

Prolog is the most commonly used logic programming language. It supports non-deterministic programming through backtracking and pattern matching through unification.

40 questions
Filter by
Sorted by
Tagged with
24 views

### Prolog destructor?

I have an init predicate which asserts some facts. I would like to clean these up after execution. I'm running queries of the form init, do_stuff, cleanup.. I would ...
53 views

### Pocket cube solver in Prolog

Hello I have writtern this Prolog code to solve a scrambled 2x2 rubiks cube. Also known as a a pocket cube. ...
38 views

### Prolog refactor if/else

How do I refactor this mess of if/else conditions so that it's more readable? ...
25 views

### Simple task with recursion on Prolog

I'm new in Prolog. So, I'm not sure if my code is ok and optimized. I'm also not sure if I use recursion correctly. Task: find students that has at least 1 bad grade (1 or 2) and print them in table ...
220 views

### Constraint solving CrossCells puzzle game solution

There's a puzzle game called CrossCells (not affiliated; there's also multiple other ones with the same kind of idea, but slightly different layout and rule set) that I've been playing on and off. ...
65 views

### Basic logic problem in Prolog

I thought it would be a good idea to take some easy to solve (by hand) problems and model them in Prolog for practice. Here is a problem I modeled in Prolog: A messy kid wrote a multiplication ...
163 views

### Writing a tokenizer in SWI-Prolog

To teach myself how to do meta-progaming using Prolog, I've been playing around with translating ABNF syntax into DCG syntax. I'm still at the lexing and tokenising stage, but hope to advance to the "...
98 views

### Find CISC prerequisites

Below I have some code written in prolog as a brief example. The goal of the program is to take a Computer and Information Science (CISC) course number and return any CISC prerequisites (prereqs). I ...
101 views

### Echo in Prolog with single print (new version)

In order to learn a bit more of Prolog, I implemented the echo command for SWI-Prolog. I want a correct implementation, that is, it satisfies the following requirements: It makes only one I/O call ...
399 views

### Echo in prolog with single print

In order to learn a bit more of Prolog, I implemented the echo command for SWI-Prolog. I want a correct implementation, that is, it satisfies the following ...
133 views

### Counting number of seen states

I have some code which executes a simple task, counting the number of states reachable from a particular state, would just like some advice on how to improve it. So far it stores all the states it ...
975 views

### Zebra puzzle in Prolog

I have attempted to a zebra puzzle in prolog and I was seeking some feedback as to the way I went about solving the puzzle. Here is the puzzle: Two weeks ago, four enthusiasts made sightings of ...
134 views

### All outcomes for subtraction on each value in list individually

As you can see from my predicate iterate, I am repeating Z is X-3 and Z is X-2, the scenarios are different if the value is 0 or ...
15k views

### Family tree in Prolog

I tried to write a program in Prolog and describe a family tree: ...
566 views

### Harry Potter's Family Tree Database

As an assignment for a class, I have made a small Harry Potter family tree in Prolog. It compiles into a self-contained executable that can be run straight from the command line on Linux machines. ...
259 views

### Movie Knowledgebase

I have had an assignment to construct a movie knowledgebase and ten specified queries in Prolog. This is my first ever Prolog program, so I would appreciate any pointers toward how I could improve. ...
154 views

### CLP(FD) labeling on possibly infinite domains

As a follow-up to this SO question, I implemented, for my Prolog-based language Brachylog, my own labeling predicate brachylog_equals/2 which is not guaranteed to ...
475 views

### Aggregate cost for a directed graph in Prolog

I've come up with a simple graph traversal algorithm to calculate the aggregated cost of a directed graph or its subgraphs. Given a directed graph, the code visits all reachable nodes and sums up the ...
223 views

### Logic Prolog compiler

I'm actually doing my own Prolog compiler just like SWISH one with Java. Prolog is a logic language that is particularly suited to programs that involve symbolic or non-numeric computation. Prolog ...
889 views

### Prolog parser written in Haskell

I am writing a very simple Prolog intepreter in Haskell. It's a class assignment and I really want to do it right. I was able to (quite quickly) write a parser for the language. Today I borrowed a ...
88 views

### Prolog predicate for adjacency of integers with all signatures and no spurious choice points

I want to create a predicate nearby(X,Y) which represents "X and Y are integers 1 apart from each other" and fully satisfies: ...
14k views

### Monkey-banana problem in Prolog

The monkey-banana problem: There many variations to this problem, but the basic premise is that a monkey is in a room with a banana and a chair, and the monkey cannot reach the banana until he moves ...
551 views

### cat program in Prolog

In order to learn Prolog, I have implemented the cat command in Prolog. I want to know if the code is idiomatic and what could be improved. File ...
29 views

### meta predicates fixedpoint/3 and fixedpointlist/3

What about the following meta-predicate "fixed point"? ...
247 views

### map + foldl = mapfoldl

I was wondering... In the standard library of some Prolog systems, there are meta-predicates like maplist and foldl. In general,...
554 views

### Higher-order Prolog predicates combine/3 and reduce/3

I'm trying to find useful versatile meta-predicates that are different from the vanilla ones offered currently by library(apply). How about the following two: <...
130 views

### SICP Exercise 1.3: Sum of squares of two largest numbers out of three, Prolog Version

The exercise 1.3 of the book Structure and Interpretation of Computer Programs asks the following: Exercise 1.3. Define a procedure that takes three numbers as arguments and returns the sum of the ...
143 views

### Repeated string concatenation

I've been looking for a way to have a predicate that establishes that all elements of a list are substrings delimited by a given string. Analogues in other languages include: ...
661 views

### Adding elements in two lists as numbers

The problem is adding two lists as numbers L1 = [1,9,9] and L2 = [0,9,9]: ...
177 views

### Binary Digits to ASCII Characters

I wrote this code, as a novice a to Prolog, for a challenge posted on /r/DailyProgrammer. The formal description of this challenge, as presented in the prompt reads: Input description On ...
128 views

### English phrases, prime numbers, pseudo random data and encryption source code check

This code uses a DCG and pairs phrases into near-English sentences. If anyone is familiar with Prolog, I'm wondering how I can use the code as an encryption method by hiding data and replacing it ...
80 views

### Iterating towards a goal

I'm pretty proud of the following, but would welcome any comments from experts: ...
295 views

### Implementing an open/close function in Prolog

I'm going through the Adventure in Prolog tutorial and I'm trying to implement an open/close rule for each of the doors I have. Add an open/closed status for each of the doors. Write open and close ...
9k views

### "Hello world!" in Prolog

I have just written the following "hello world" program in Prolog. Although it is as simple as it can be, I would like your feedback as Prolog is very new to me. ...
138 views

### Sample n items without replacement in Prolog

I have the following Prolog code which samples n items from a list without replacement: ...
87 views

### Implementing a zipwithindex predicate in prolog

I want to implement a predicate of the form: zipwithindex(?List1, ?List2) which is true when the elements of List2 are the ...
4k views

### Prolog Sudoku solver taking too long

I was wondering if there's any way I can improve this code's execution. I want to use it on a 9*9 grid, but it takes too long to solve this as 4*4. This program takes as input a 4*4 matrix ...
1k views

### Complete graph traversal algorithm in Prolog

Given a table, I want to explore all possible transition between the elements in the table. ex: for a table with size 3 [0,1,2], the output of the algorithm should be 0->1, 1->0, 0->2, 2->1, 1->2, 2->...