-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
LogicList type needed #1
Comments
I think it is a reasonable first attempt, but what will it do with Oleg ... Dan On Sun, Jan 29, 2012 at 3:13 PM, Adam Foltzer <
|
Well, Oleg Numbers are isomorphic to Reification (and unification) are a pain to define right now with lots of boilerplate, but there are generic programming techniques to address this. Now that we've escaped from the tyranny of the all-encompassing sum type for values, though, it should be mostly straightforward, although there will be interesting problems with recursively-defined types. |
There is a paper called "Typed Logic Variables" that you should look at. ... Dan On Sun, Jan 29, 2012 at 3:25 PM, Adam Foltzer <
|
Like in previous incarnations of this system, we need an alternative to the built-in list type:
This isn't suitable for our purposes, since we don't necessarily have a tail that's actually a list, but the
:
constructor requires one. Instead, we need a list that's more like this:This type would rule out improper lists, since the ground value for the tail, if any, is another list. However, we can't yet overload the
[]
/:
syntax, so it'll probably have to be something awkward like:Does this type sound good? Once we decide on it, we should provide an alternative
Data.List
module, although it remains to be seen how higher-order combinators might behave in this setting.The text was updated successfully, but these errors were encountered: