diff options
author | Zhongheng Liu <z.liu@outlook.com.gr> | 2025-03-26 13:05:30 +0200 |
---|---|---|
committer | Zhongheng Liu <z.liu@outlook.com.gr> | 2025-03-26 13:05:30 +0200 |
commit | cb233381dc6d818ae3d2efa416a8ba1434b85da5 (patch) | |
tree | 78b5b5f95d4ef6f45914f3d3c056fc6e3ce26aa9 | |
download | prolog-master.tar.gz prolog-master.tar.bz2 prolog-master.zip |
-rw-r--r-- | .envrc | 1 | ||||
-rw-r--r-- | .gitignore | 9 | ||||
-rw-r--r-- | flake.lock | 27 | ||||
-rw-r--r-- | flake.nix | 24 | ||||
-rw-r--r-- | knowledge_base.pl | 32 |
5 files changed, 93 insertions, 0 deletions
@@ -0,0 +1 @@ +use flake diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4d058db --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +# Devenv +.devenv* +devenv.local.nix + +# direnv +.direnv + +# pre-commit +.pre-commit-config.yaml diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..15012bd --- /dev/null +++ b/flake.lock @@ -0,0 +1,27 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1742669843, + "narHash": "sha256-G5n+FOXLXcRx+3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "1e5b653dff12029333a6546c11e108ede13052eb", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..e1b6fe1 --- /dev/null +++ b/flake.nix @@ -0,0 +1,24 @@ +{ + description = "A very basic flake"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; + }; + + outputs = { self, nixpkgs }: { + devShells.x86_64-linux.default = let pkgs = nixpkgs.legacyPackages.x86_64-linux; + in pkgs.mkShell { + buildInputs = with pkgs; [ + git + swiProlog + ]; + shellHook = '' + echo hi + ''; + }; + packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello; + + packages.x86_64-linux.default = self.packages.x86_64-linux.hello; + + }; +} diff --git a/knowledge_base.pl b/knowledge_base.pl new file mode 100644 index 0000000..542ca70 --- /dev/null +++ b/knowledge_base.pl @@ -0,0 +1,32 @@ +human(jack). +income(jack, 480). + +human(jones). +income(jones, 20). + +human(joe). +income(joe, 1000). + +human(jeremy). +product(jeremy). + +product(grapes). +cost(grapes, 5). + +product(pasta). +cost(pasta, 1). + +product(car). +cost(car, 400). +likes(jack, pasta). +likes(jones, car). +likes(joe, car). +can_afford(X, Y) :- + income(X, Income), + cost(Y, Cost), + Income > Cost. +will_buy(X, Y) :- + human(X), + product(Y), + likes(X, Y), + can_afford(X, Y). |