Hi,

this is the answer I found for a one liner for the question I posed
earlier. This post is an experiment in making J a little more accessible to
newcomers. My ability to debug J expressions has grown slowly over time...
so if I can make that journey a little bit easier for someone, then the
post was worth it. There's nothing particularly new here -- almost
everything is borrowed.

tobin=:3!:1
frbin=:3!:2
read=:(1!:1)
write=:(1!:2)
NB. version 1
[bread=:13 : 'frbin read y'
[bwrite=:13 : '(tobin x) write y'

This bwrite fails.. but why because  posting the variable in manually works
e.g. (tobin A) write <'c:\temp\A.dat'
This lead me to these expressions

NB. version 2

[bwrite=: 13 : 'a (1!:2) <y [a=.3!:1 x'
NB. [ 'explicit' trick   -- found at
http://www.jsoftware.com/help/jforc/explicit-to-tacit_converter.htm
NB. 5!:5 <'bwrite'
NB. gives us the tacit form
NB. ([: 3!:1 [) 1!:2 [: < ]

[bread=: 13 : '3!:2 (1!:1) <y'
NB. 5!:5 <'bread'
NB. gives us the tacit form
NB. bread=:[: 3!:2 [: 1!:1 <

NB. TEST
0 : 0
A=:i. 3 3
A bwrite 'c:\temp\A.dat'
[B=:bread 'c:\temp\A.dat'
)
-Steven

On 23 December 2010 21:17, Steven Taylor <[email protected]> wrote:

> just incase anyone else was puzzled like I was...
>
> tobin=:3!:1        NB. to binary
> frombin=:3!:2     NB. convert back from binary
> read=:(1!:1)       NB. read file
> write=:(1!:2)       NB. write file
>
> A=:i. 50 5
>
> (tobin A) (1!:2) <'c:\temp\A.dat'
> frombin (1!:1) <'c:\temp\A.dat'
>
> (tobin A) write <'c:\temp\A.dat'
> frombin read <'c:\temp\A.dat'
>
>   On 23 December 2010 19:55, Steven Taylor <[email protected]> wrote:
>
>> For a long time I didn't go past vocabulary. Just starting to dig into the
>> script libraries now. Thanks for the sanity check.
>>
>> Looks like I need:
>>
>>          [x] 3!:1 y
>> and,
>>      3!:2 y
>>
>> -Steven
>>
>
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to