Roger,

The other aspect that I find very powerful is that it is that you can define 
what you want the inverse to be using the obverse conjunction (:.). Thus the 
under conjunction (&.)can be non symmetrical if the programmer defines a 
non-symmetrical inverse when creating a verb.

Cheers, bob

On 2011-11-02, at 12:06 PM, Roger Hui wrote:

> It would not be correct.  It signals domain error on a non-invertible 
> function.
> 
> 
> 
> On Wed, Nov 2, 2011 at 11:37 AM, Andrew Pennebaker
> <[email protected]> wrote:
>> Would it be correct to say ^:_1 uses memoization?
>> 
>> If so, when does the memoization happen? Does J memoize the function to be
>> ^:_1'd as soon as the function is defined, or does J wait to do so when
>> ^:_1 is called?
>> 
>> What does J do if you try to ^:_1 a non-injective function? Does it just
>> return the first correct input it encounters?
>> 
>> Cheers,
>> 
>> Andrew Pennebaker
>> www.yellosoft.us
>> 
>> On Wed, Nov 2, 2011 at 2:23 PM, Roger Hui <[email protected]> wrote:
>> 
>>>> How powerful is J's ^:_1 operator?
>>> Very.
>>> 
>>>> How is it implemented?
>>> Carefully. ☺  It's a giant table look-up.  Some of the inverses were
>>> put in to impress particular people, lying in wait for years.  (It
>>> worked!  Worth all the effort and all the waiting because of who it
>>> was.)
>>> 
>>> See http://www.jsoftware.com/jwiki/Essays/Under , the raison d'être
>>> for having inverses.
>>> 
>>> 
>>> 
>>> On Wed, Nov 2, 2011 at 11:14 AM, Andrew Pennebaker
>>> <[email protected]> wrote:
>>>> Fascinating.
>>>> 
>>>> How powerful is J's ^:_1 operator? How is it implemented?
>>>> 
>>>> Cheers,
>>>> 
>>>> Andrew Pennebaker
>>>> www.yellosoft.us
>>>> 
>>>> On Wed, Nov 2, 2011 at 10:02 AM, Roger Hui <[email protected]
>>>> wrote:
>>>> 
>>>>> It's better to define functions in the form "F from G" rather than "G
>>>>> to F", because then the argument and result would be adjacent to the
>>>>> function whose domain/range they are in:
>>>>> 
>>>>> f =: FfG g
>>>>> f =: GtF g
>>>>> 
>>>>> 
>>>>> 
>>>>> On Wed, Nov 2, 2011 at 1:32 AM, Alan Stebbens <[email protected]> wrote:
>>>>>>> How would one parse a hex string back to an integer?
>>>>>> 
>>>>>> Two ways:
>>>>>> 
>>>>>> Hard way:
>>>>>> 
>>>>>>   H2D =: [: +/ 16 1 * '0123456789abcdef' I. ]
>>>>>>   H2D 'A0'
>>>>>> 160
>>>>>> 
>>>>>> Easy way:
>>>>>> 
>>>>>>   h2d =: d2h ^:_1
>>>>>>   h2d 'a0'
>>>>>> 160
>>>>>>  h2d d2h i.20
>>>>>> 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
>>>>>> 
>>>>>> 
>>>>>> ----------------------------------------------------------------------
>>>>>> For information about J forums see
>>> http://www.jsoftware.com/forums.htm
>>>>>> 
>>>>> ----------------------------------------------------------------------
>>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>>> 
>>>> ----------------------------------------------------------------------
>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>> 
>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>> 
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm

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

Reply via email to