In case it's not clear, the initial table uses the tab character (9{a. or
"TAB") to delimit columns.


On Fri, May 16, 2014 at 10:39 AM, Devon McCormick <[email protected]>wrote:

> I don't understand what your purpose is for these lists, but, as they seem
> to be aligned with each other, a table would seem a more natural
> representation.
> For instance:
>
>    'whlang translations'=: ({.,&<}.) <;._1&>TAB,&.><;._2]0 : 0
> English Svenska
> Write your name Skriv ditt namn
> Options Inställningar
> )
>
>       whlang
> +-------+-------+
> |English|Svenska|
> +-------+-------+
>    translations
> +---------------+---------------+
> |Write your name|Skriv ditt namn|
> +---------------+---------------+
> |Options        |Inställningar  |
> +---------------+---------------+
>    translations{"1~whlang i. <'Svenska'
> +---------------+-------------+
> |Skriv ditt namn|Inställningar|
> +---------------+-------------+
>    (translations{"1~whlang i. <'English'){~(translations{"1~whlang i.
> <'Svenska') i. <'Inställningar'
> +-------+
> |Options|
> +-------+
>
> Encapsulating the logic of this last phrase, incorporating some
> error-handling:
> translate=: 4 : 0
>    assert. *./whlang e. x    NB. x is from;to language
>    'from to'=. whlang i. x   NB. y is phrase(s) to translate
>    y=. <^:(0=L.) y
>    (translations,<'?'){~to,&.>~y i.~translations{"1~from
> )
>
>    ('English';'Svenska') translate 'Options';'Taco'
> +-------------+-+
> |Inställningar|?|
> +-------------+-+
>
>
>
> On Fri, May 16, 2014 at 4:01 AM, Raul Miller <[email protected]>wrote:
>
>> I have some questions:
>>
>> (*) Are you guaranteed that these lists will always be the same length?
>>
>> (*) Are you guaranteed that the entries will always be in order, with no
>> missing values?
>>
>> (*) Is it possible that your text will have the delimiter (';' in this
>> case) in the entries?
>>
>> (*) Do you care about redundant spaces (for example preceding or following
>> the numbers or text)?
>>
>> (*) Are you in any danger of running out of memory (or disk space or time
>> or whatever else) because you have so much data?
>>
>> Depending on the answers to these questions, you might need a different
>> approach. For now, I'll assume answers for them them that makes the code
>> the simplest.
>>
>> But what I think I would do is (a) encapsulate your manipulation logic in
>> a
>> verb, (b) use {. and }. with i. instead of cut, to split your lines (that
>> way you are guaranteed to always split on the first occurrence of the
>> delimiter), and (c) not reassign the variables (because that makes
>> understanding and debugging slightly easier, in my opinion).
>>
>> In other words, given:
>>
>> ingl=:0 :0
>> 1;English
>> 2;Write your name
>> 3;Options
>> )
>>
>> sved=:0 :0
>> 1;Svenska
>> 2;Skriv ditt namn
>> 3;Inställningar
>> )
>>
>> package=:3 :0
>>   ';' package y
>> :
>>   (({.~ ; (}.~>:)) i.&x);._2 y
>> )
>>
>> I think I'd do it like this:
>>
>>    (package ingl),. 1}."1 package sved
>> ┌─┬───────────────┬───────────────┐
>> │1│English        │Svenska        │
>> ├─┼───────────────┼───────────────┤
>> │2│Write your name│Skriv ditt namn│
>> ├─┼───────────────┼───────────────┤
>> │3│Options        │Inställningar │
>> └─┴───────────────┴───────────────┘
>>
>> Of course, there are other ways also (and, depending on your answers there
>> might be much better ways).
>>
>> Thanks,
>>
>> --
>> Raul
>>
>>
>>
>>
>>
>>
>> On Fri, May 16, 2014 at 3:03 AM, Gian Medri <[email protected]> wrote:
>>
>> > Hi!
>> >
>> > I have 2 or more lists of substantives. The lists must be as simple as
>> > possible, since they are done
>> >
>> > by a translator not familiar with computer languages.
>> > From the lists I want to get a boxed matrix.
>> > The numbers in each line of the list are only for reference purposes,
>> > since the lists
>> >
>> > are normally hundreds of lines. I wonder if there are a better way to
>> > solve the problem
>> >
>> > than in the example.
>> >
>> >
>> >
>> > cut=:' '&$: :([: -.&a: <;._2@,~)
>> >
>> > ingl=.(0 : 0)
>> >
>> > 1;English
>> >
>> > 2;Write your name
>> >
>> > 3;Options
>> >
>> > )
>> >
>> > ingl=. > ';' cut each <;._2 ingl
>> >
>> >
>> >
>> > sved=. (0 : 0)
>> >
>> > 1;Svenska
>> >
>> > 2;Skriv ditt namn
>> >
>> > 3;Inställningar
>> >
>> > )
>> >
>> > sved=.1{"1 > ';' cut each <;._2 sved
>> >
>> > ]matx=:ingl,.sved
>> >
>> >
>> >
>> > ┌─┬───────────────┬───────────────┐
>> >
>> > │1 │English                            │Svenska        │
>> >
>> > ├─┼───────────────┼───────────────┤
>> >
>> > │2 │Write your name              │Skriv ditt namn│
>> >
>> > ├─┼───────────────┼───────────────┤
>> >
>> > │3 │Options                           │Inställningar │
>> >
>> > └─┴───────────────┴───────────────┘
>> >
>> >
>> >
>> >  Thanks,
>> >
>> > Gian Medri
>> > ----------------------------------------------------------------------
>> > For information about J forums see http://www.jsoftware.com/forums.htm
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
>
>
>
> --
> Devon McCormick, CFA
>
>


-- 
Devon McCormick, CFA
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to