diff options
author | Peter Mikkelsen <peter@pmikkelsen.com> | 2021-06-30 00:07:49 +0000 |
---|---|---|
committer | Peter Mikkelsen <peter@pmikkelsen.com> | 2021-06-30 00:07:49 +0000 |
commit | d5ce41f05bc322fa2fb4d0eee66080b3b3004853 (patch) | |
tree | 653b634d922632f52340420bc7495643f1c0bbce /misc.c | |
parent | 9799fbd9e8c7fd186365c628bf2024d458dafc75 (diff) |
Start work on an evaluator. For now it knows how to unify but doesn't know how to handle builtin predicates or how to backtrack
Diffstat (limited to 'misc.c')
-rw-r--r-- | misc.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -5,6 +5,20 @@ #include "fns.h" Term * +copyterm(Term *orig) +{ + Term *new = malloc(sizeof(Term)); + memcpy(new, orig, sizeof(Term)); + new->next = nil; + new->children = nil; + + Term *child; + for(child = orig->children; child != nil; child = child->next) + new->children = appendterm(new->children, copyterm(child)); + return new; +} + +Term * appendterm(Term *a, Term *b) { if(a == nil) |