On Tue, Jan 16, 2018 at 12:08 AM, Jose Mario Quintana
<[email protected]> wrote:
> First, you wrote,
>> But I would be interested in seeing a counter-example that destroys my
>> belief, if counterexamples exist.
>
> In your last message you wrote,
>
>> The use of FC is indeed necessary if the function being translated
>> needs to be evaluated multiple times with the same arguments (in a
>> single call).
>
> It seems that something has been accomplished: your belief has been
> destroyed.  But something might still be missing...  I am playing the
> devil's advocate now (no offense), you have not shown an actual
> counterexample (F) refuting you fuzzy claim when "then function being
> translated needs to be evaluated multiple times with the same arguments (in
> a single call)."

Yeah, ok.

>> But I think this whole "moving target" label is really because of the
>> nature of the generalizations we seem to be talking about.
>
> That seems to be a poor excuse.  You could have included a formal
> characterization of FC, FB and (now) FC in relation to F to clarify your
> "claim"; unless, of course, that characterization is also fuzzy in your
> mind.

If F is a monadic verb which has a [meaningful] tail recursive
optimization, FC@(FB^:FT^:_) is sufficient to represent F (and
typically FC would be the identify function). If F is something else,
I guess I would have to do something else, also.

>> Also, ... you seem to be abandoning your previous "tail recursive"
>> functions, rather than showing that they did anything. Was this your
>> intent? Or are we coming back to them?
>
> Am I abandoning them?  I seems you cannot grasp what the verb evolve does
> despite the description of the task in the Rosetta Code site and
> implementations in dozens of languages, including one in J.  I am sorry, I
> cannot help you there; however, certain author of a revision [0] might be
> able to explain it to you, find "If you are getting lost" in [1]. ;)  I
> wonder why you apparently do not understand what the verb onemore is doing
> either.  :D

Eh... the rosettacode evolve

https://rosettacode.org/wiki/Evolutionary_algorithm#J

is considerably different from the evolve you referenced earlier in this thread

http://www.jsoftware.com/pipermail/programming/2009-December/017529.html

Not only in structure, but in behavior.

Though, reviewing this thread, I do now notice that you referred to
the rosettacode instance a few messages back.

Also, the rosettacode implementation of evolve already uses induction...

But, anyways, that's enough hints for me to get going.

The tail recursive routine in the evolve you referenced was recur, and
the FB^:FT^:_ form of recur would be:

   recur=: next^:NotMatch^:_

I hope this helps,

-- 
Raul
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to