Thank you for so many letters. But please do not too much time on me
:) because I have manual and I can read it.
Now the next thing is unclear for me:
s =: '192.168.1.1'
".;._1@:,~&'.' s .NB das ist gut
192 168 1 1
but its not so clear how to convert it to function. I found &: but it
does not work:
(".;._2&:,&'.') s
|domain error
| (".;._2&:,&'.')s
its equals @: which works, and its strange, because I see that LJ
describes @: and &: is the same for monads.
f =: ".;._1@:,~&'.'
5!:2 <'f'
+---------------------+-+-+
|+-----------------+-+|&|.|
||+----------+--+-+|~|| | |
|||+--+--+--+|@:|,|| || | |
||||".|;.|_1|| | || || | |
|||+--+--+--+| | || || | |
||+----------+--+-+| || | |
|+-----------------+-+| | |
+---------------------+-+-+
But I do not understand how it splits the function, why does it throw
&',' to the top? I expected something like this
f =: ".;._1@:(,~&'.')
5!:2<'f'
5!:2<'f'
+----------+--+-----------+
|+--+--+--+|@:|+-----+-+-+|
||".|;.|_1|| ||+-+-+|&|.||
|+--+--+--+| |||,|~|| | ||
| | ||+-+-+| | ||
| | |+-----+-+-+|
+----------+--+-----------+
f s
192 168 1 1
Ok, the next one: I suppose that / does not work like in K
(+ *&256)~/f '0.0.1.0'
256 - cool
(+ *&256)~/f '0.1.0.0'
256
again? I should be 65536 K: {y+x*256}/0 1 0 0 -> 65536
One point: it seems that I like J style with Conjunctions more than K
style with x,y :) but should get used to read it.
Ok, let it be wrong, I will correct it later.
g =: (+ *&256)~/ @: f
g s
92417 - good
But I want to make it without g, so I am applying @: several times.
For the following function it works:
(*&2 @: *: @: +&1) 1
8
f =: (+ *&256)~/ @: ".;._2 @: ,&'.'
f s
192 168 1 1 - does not work, only for
f =: (+ *&256)~/ @: (".;._2 @: ,&'.')
f s
92417
I suppose that it is the same question I asked above about split with @:
Thank you,
On Sat, Nov 19, 2011 at 2:18 PM, Raul Miller <[email protected]> wrote:
> Have you noticed 9!:3 yet? (Or, if you are using anything but the console
> version, there's also a menu option.)
>
> Good luck,
>
> --
> Raul
>
> On Fri, Nov 18, 2011 at 6:13 PM, Alexander Epifanov <[email protected]>wrote:
>
>> Yes, I am ready J for C now.
>> But, of course, I understand most if the things.
>>
>> The main error: I thought that J is like K, but has more features.
>> The problem I found: J vocabulary has much more verbs. Most of the
>> verbs in K is one symbol, in J there are a lot of one-two-three symbol
>> verbs and many special construction. K is much simpler at the point .
>> Sometimes it is hard for me to understand what is it: 1 2 +/@:* 3 4 or
>> 1 2 (+/ @"*) 3 4 or 1 2 (+/@ "*) 3 4. But 5!:2 should help.
>>
>> For example I would write the following example in K:
>> *>|/
>> and for me it looks easier at the moment. Will try to overwrite it J.
>>
>> Regards,
>>
>> On Fri, Nov 18, 2011 at 11:40 PM, Kip Murray <[email protected]> wrote:
>> > By all means, post questions here.
>> >
>> > And I think you will like J for C programmers (click on JfC at top of
>> > vocabulary page), here is a sample from Chapter 2 Culture Shock:
>> >
>> > Here's an example. Figure out what the following code does:
>> >
>> > int i, j, maxcol = 0;
>> > float maxval = x[0][0];
>> > for(i = 0;i<=xsize0;++i) {
>> > for(j = 0;j<=xsize1;++j) {
>> > if(x[i][j] > maxval) {
>> > maxval = x[i][j];
>> > maxcol = j;
>> > }
>> > }
>> > }
>> >
>> > Not too hard. When the code finishes, maxval is the largest element in
>> > the array x, and maxcol is the column number it was in. As it happens,
>> > all I wanted was the column number, but there was no way for you to know
>> > that.
>> >
>> > The same code in J:
>> >
>> > maxcol =. (i. >./) >./ x
>> >
>> > With some practice, you will learn to read this code just as easily as
>> > you read the C. You will recognize the / as an indicator of a loop that
>> > accumulates a result, and the i. as an indicator of a search. The =.
>> > and =: tokens indicate assignment.
>> >
>> > What happened to the if statement?
>> >
>> > It's built into the >. primitive. Just as most loops are hidden inside
>> > primitives, so are most conditionals. The functions you write can also
>> > contain built-in conditionals.
>> >
>> > What's the statement delimiter?
>> >
>> > There isn't one. Statements are exactly one line long.
>> >
>> > I've looked at some J code. Every other character is a period or a
>> > colon. I've got spots before my eyes. How can anybody read this stuff?
>> >
>> > . . .
>> >
>> >
>> > On 11/18/2011 3:45 PM, Raul Miller wrote:
>> >> If you cannot find the right reference material, then just post
>> questions
>> >> here.
>> >>
>> >> We have a "J for C Programmers" book, but we do not have a "J for K
>> >> Programmers". And in some ways, J is more complicated to use than K.
>> (K
>> >> tends to be simpler for 1 dimensional data and for tree structures.)
>> >>
>> > ----------------------------------------------------------------------
>> > For information about J forums see http://www.jsoftware.com/forums.htm
>> >
>>
>>
>>
>> --
>> Regards,
>> Alexander.
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
--
Regards,
Alexander.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm