By copying from your message I detected 3 garbage characters at the
end of the line in question.
a.i.'{. 2&x: (+%)/ a'
123 46 32 50 38 120 58 32 40 43 37 41 47 32 97 226 128 139
On Tue, Oct 18, 2011 at 3:39 PM, David Vaughan
<[email protected]> wrote:
> Strange, but sorted now. I've just written another verb and am getting
> another spelling error which I don't understand - none of this was copied and
> pasted:
>
> pell =: 3 : 0
> a =. x: cf y
> if. 0=2|#a do. a =. (] , }.@}:) a end.
> {. 2&x: (+%)/ a
> )
> |spelling error
> | {. 2&x: (+%)/ a
> | ^
> | pell=: 3 :0
>
> If I type it 'manually' it works.
>
> On 18 Oct 2011, at 18:26, Raul Miller wrote:
>
>> If I copy and paste this into a temp file, and load it, I get the same
>> spelling error you got.
>>
>> If I replace the load keyword in my session with a.i.30 }. 41 {. 1!:1<
>> I get:
>> 50 43 114 13 10 226 128 139 226 128 139
>>
>> So it looks like you have a couple invisible white space unicode
>> sequences which J currently does not recognize as valid white space.
>>
>> Confirming this, in my J6.02 session, if I position the cursor to the
>> right of the 'w' in while and then move my cursor one character to the
>> left, and hit delete twice, the 'while.' keyword changes color, and
>> when I load the file I do not get the spelling error.
>>
>> FYI,
>>
>> --
>> Raul
>>
>>
>> On Tue, Oct 18, 2011 at 1:09 PM, David Vaughan
>> <[email protected]> wrote:
>>> Hmm, now I'm getting a spelling error which doesn't seem to make sense:
>>>
>>> cf =: 3 : 0
>>> r=.%:y
>>> a=.<.1r2+r
>>> while. ({:a)~:2*{.a do. a=.a,<.1r2+{:r ] r=.r,%({:r)-{:a end.
>>> ]a
>>> )
>>> |spelling error
>>> |
>>> | ^
>>> | cf=: 3 :0
>>>
>>> It's like it's saying the error is above the first line. Also this is no
>>> different to the version I had before aside from the correction in the
>>> while loop.
>>>
>>> On 18 Oct 2011, at 18:00, Raul Miller wrote:
>>>
>>>> The first element of a is always 1.
>>>>
>>>> The last element of a is always an integer and so can never be 0.5.
>>>>
>>>> So the loop can never terminate.
>>>>
>>>> --
>>>> Raul
>>>>
>>>> On Tue, Oct 18, 2011 at 12:52 PM, David Vaughan
>>>> <[email protected]> wrote:
>>>>> Why does this not work? I had to interrupt it because it just froze doing
>>>>> nothing.
>>>>>
>>>>> cf =: 3 : 0
>>>>> r=.%:y
>>>>> a=.<.1r2+r
>>>>> while. ({.a)~:2*{:a do. a=.a,<.1r2+{:r ] r=.r,1%({:r)-{:a end.
>>>>> ]a
>>>>> )
>>>>> cf 2
>>>>> |attention interrupt: cf
>>>>> | cf 2
>>>>>
>>>>>
>>>>> On 18 Oct 2011, at 17:23, Raul Miller wrote:
>>>>>
>>>>>> The best I can think of at the moment is using x: on the floating
>>>>>> point value for an initial value and then newton's method to gain the
>>>>>> extra precision you want.
>>>>>>
>>>>>> --
>>>>>> Raul
>>>>>>
>>>>>> On Tue, Oct 18, 2011 at 12:09 PM, David Vaughan
>>>>>> <[email protected]> wrote:
>>>>>>> I'm hoping to write a verb to compute the continued fraction expansion
>>>>>>> of a square root. I've done it in Java though there are accuracy issues
>>>>>>> with floating points and speed issues with using exact numbers (you end
>>>>>>> up multiplying massive numbers in some cases). Is J equipped to deal
>>>>>>> with these problems or should I be looking for an alternative method
>>>>>>> entirely?
>>>>>>>
>>>>>>> On 18 Oct 2011, at 16:50, Raul Miller wrote:
>>>>>>>
>>>>>>>> On Tue, Oct 18, 2011 at 11:30 AM, David Vaughan
>>>>>>>> <[email protected]> wrote:
>>>>>>>>> Can J represent surds exactly instead of reverting to floating point?
>>>>>>>>> It would be more convenient if I could do that rather than storing
>>>>>>>>> the squared version.
>>>>>>>>
>>>>>>>> Yes, but by generating a verb which would generate the floating point
>>>>>>>> value and not as a number.
>>>>>>>>
>>>>>>>> cubeRootOf5=: %:&5 bind 3
>>>>>>>>
>>>>>>>> Of course you can manipulate the resulting numbers but those results
>>>>>>>> are still floating point:
>>>>>>>>
>>>>>>>> (cubeRootOf5 ^ 3:) ''
>>>>>>>> 5
>>>>>>>> 5-(cubeRootOf5 ^ 3:) ''
>>>>>>>> 8.88178e_16
>>>>>>>>
>>>>>>>> That said, in some cases, J can clean up floating point discrepancies
>>>>>>>>
>>>>>>>> 5-x:(cubeRootOf5 ^ 3:) ''
>>>>>>>> 0
>>>>>>>>
>>>>>>>> but that's from direct manipulation of the values and does not care
>>>>>>>> about delayed evaluation:
>>>>>>>>
>>>>>>>> 5-x:((3 %:5) ^ 3:) ''
>>>>>>>> 0
>>>>>>>>
>>>>>>>> Anyways, J implements the data structures to support symbolic
>>>>>>>> manipulation but it does not have a particularly large library of
>>>>>>>> prebuilt symbolic manipulation routines.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm