prolog
scryer-prolog
prolog | scryer-prolog | |
---|---|---|
14 | 42 | |
539 | 1,895 | |
- | - | |
5.6 | 9.7 | |
3 months ago | 8 days ago | |
Go | Rust | |
MIT License | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
prolog
-
Mangle, a programming language for deductive database programming
Other resources for logic programming and Go:
ichiban/prolog - ISO Prolog interpreter in pure Go, getting close to v1: https://github.com/ichiban/prolog
trealla-prolog/go - ISO Prolog interpreter embedded via WASM: https://github.com/trealla-prolog/go
guregu/pengine - library for interfacing with Pengines (SWI-Prolog's RPC protocol): https://github.com/guregu/pengine
biscuit-auth/biscuit-go - Biscuits are a fancy auth token with a little Datalog engine: https://github.com/biscuit-auth/biscuit-go
I'm a big fan of logic programming. We've been seeing a small resurgence of interest in it (for example Yarn using Prolog made some waves) and I have some optimism for its future.
- Golog library/language?
-
State machines and reconciliation loops
fully native Prolog, or embedded? I am very familiar with Go, so I was intrigued to see ichiban/prolog. This might enable me to leverage some existing libraries (GitHub, git, etc) and save Prolog for the logic that drives them.
-
Let's philosophize a bit :-)
You may also be interested in this Prolog interpreter in Go: https://github.com/ichiban/prolog
-
Interpreters built in Go
There have been several Prolog interpreters written in Golang. This one appears to be most active: https://github.com/ichiban/prolog .
-
The Power of Prolog
For Go, you have prolog as a scripting engine https://github.com/ichiban/prolog
- Prolog runtime for aws lambda?
- Prolog Go Library
-
Hacker News top posts: Jan 27, 2022
An embeddable Prolog scripting language for Go\ (2 comments)
- An embeddable Prolog scripting language for Go
scryer-prolog
-
The Shen Programming Language
thank you! the scryer community deserves much of the credit too. everyone is welcome and encouraged to join us at https://github.com/mthom/scryer-prolog! some exciting plans in the pipe
- Appreciating Clpz_t/2
- Advent of Code 2023 is nigh
- Scryer Prolog version 0.9.3 is out
- Announcing Basic WebAssembly support in Scryer Prolog
- Basic WebAssembly Support in Scryer Prolog
- Scryer-Prolog 0.9.2
- Release v1.1.0 of PostgreSQL-Prolog
-
Djot is a light markup syntax
Djot is the markup syntax that is used for the documentation of Scryer Prolog, using a parser written in Prolog:
https://github.com/aarroyoc/djota
It works well so far. One of the few limitations I noticed so far pertains to the formatting of tables. For instance, consider the table used in library(format) to describe control sequences:
https://github.com/mthom/scryer-prolog/blob/b0566e41503a6c8d...
It contains several entries that span multiple lines, yet are meant to denote only a single row of the table, such as:
% | `~Nr` | where N is an integer between 2 and 36: format the |
- The First Annual Scryer Prolog Meetup
What are some alternatives?
go-python - naive go bindings to the CPython2 C-API
swipl-devel - SWI-Prolog Main development repository
go-lua - A Lua VM in Go
logica - Logica is a logic programming language that compiles to SQL. It runs on Google BigQuery, PostgreSQL and SQLite.
OPA (Open Policy Agent) - Open Policy Agent (OPA) is an open source, general-purpose policy engine.
differential-datalog - DDlog is a programming language for incremental computation. It is well suited for writing programs that continuously update their output in response to input changes. A DDlog programmer does not write incremental algorithms; instead they specify the desired input-output mapping in a declarative manner.
gval - Expression evaluation in golang
materialize - The data warehouse for operational workloads.
otto - A JavaScript interpreter in Go (golang)
tau-prolog - An open source Prolog interpreter in JavaScript
go-php - PHP bindings for the Go programming language (Golang)
otp - Erlang/OTP