views:

87

answers:

0

I plan to make a little obfuscatory logic language. It's going have some features prolog doesn't. Probable some of the features I want aren't possible to unify. But before I ask what features I should drop you should know what my language is. A comma means and. A semicolon means or. Things which would be zero-ary constructors take one argument as a predicate, (zero Z as opposed to Z=zero). A few examples.

print(Words),
"Hello"(First),
" World"(Second),
append(First,Second,Words)

zero : num ,
inc : (num,num) ,

true : (),
not false : (),

addTwo : (num,num),
addTwo = (&(A,B) inc A C,inc C B) -- An anonymous predicate bound to a name with =

The features I suspect might not be unifiable are the not predicate, the or (;) predicate and anonymous predicates. Which features that I want in my language can't be done with unification and why?