Hacker News new | ask | show | jobs
by piemonkey 3524 days ago
As a researcher that is currently working on implementing and improving existing PPLs, I'm very curious: what is your specific use-case that you have in mind for recursive queries?
2 comments

Honestly, I'd like to be able to try out some of the old social-reasoning demos from forestdb. It's not really a high-priority thing; it just bugs me that there were working languages for doing this (Church) and now there's basically just Anglican.
If you're interested in social reasoning and nested inference models, there's some examples of how they're implemented in WebPPL here: http://agentmodels.org/chapters/7-multi-agent.html. I think many of the reasoning examples from forestdb that are currently written in Church could be translated into WebPPL in a fairly straightforward manner using the same structure as the agentmodels examples.
>> what is your specific use-case that you have in mind for recursive queries?

They probably want to run a recursive query.

(sorry)

I never liked this approach to recursion, as in google's joke search correction for recursion, because recursion is a form of progressive iteration, not reiteration.
Recursion is frequently used as progressive iteration, but it can go further than that.

Typical example, a factorial function, in Erlang:

  factorial(N) -> 
	factorial(N,1).

  factorial(0, F) -> F;
  factorial(N, F) -> 
	factorial(N-1, N*F).
It's strange to read that as iteration. Instead it feels natural to describe it as composition from parts that are of the same kind as the whole.
of course that is some kind of iteration because tail recursion is isomorphic to loops and that N-1 sure looks like a while(--N)
I'm not sure I know what "isomorphic" means in this context.

For sure, (tail) recursion places a pointer to a function on the stack while a loop is a conditional jump. They're not the same thing. I think the similarity between n-1 and --n is a red herring, here.