Beyond Functional Programming: The Verse Programming Language [pdf]
Very intriguing! Is there an explanation anywhere of how this is different from Prolog? It seems like almost the same thing. That is not a criticism BTW, I love Prolog. From what I can tell the main difference is it has functions with return values. It also looks like it has different semantics for the choice points, letting you nest alternatives in arguments and other expressions. I do like how choice points are seen as a more natural building block in the language vs. the &#x27;magical&#x27; bagof in Prolog. For games, having real indexable arrays will be nice as well.<p><pre><code>   % Verse:
 x:=(1|7|2); x+1
   % Prolog:
 foo(X, Y) :- (X = 1 ; X = 7 ; X = 2), Y is X + 1.
</code></pre>
I think it might be nice to <i>implement</i> this language using Prolog. For example I think you could do the type definitions like this (let&#x27;s ignore how :&#x2F;2 is usually for module qualification):<p><pre><code>  X:int :- freeze(X, integer(X)).
</code></pre>
Kind of off-topic but I&#x27;ve always been curious why variable attributes aren&#x27;t generally used for type-checking like this in Prolog.<p>Anyway, very cool. I&#x27;ll be keeping an eye on it. Is Epic Games hiring logic programmers? :)