[Jprogramming] k programming challenge
Raul Miller
rauldmiller at gmail.com
Wed Jan 27 16:10:36 UTC 2016
So, ok, here's the definition we're talking about:
words=: [: ;: ' '"_`(I.@:= toupper)`]}~@tolower
This is basically a sequence of three operations, which are performed
from right to left
;: gerund}~ tolower
I think you are familiar with ;: and tolower so let's take a look at
the gerund}~ part of the phrase. Here's a short example:
' '"_`(I.@:= toupper)`]}~ 'this, is a test.'
this is a test
Here's an expanded and rephrased version of that phrase:
lower=. 'this, is a test.'
upper=. toupper lower
mask=. lower = upper
indices=. I.mask
' ' indices} lower
this is a test
In other words, any character which toupper leaves alone gets replaced
with a space.
Here's how each of the verbs in that gerund work for this example:
' '"_~ 'this, is a test.'
(I.@:= toupper)~ 'this, is a test.'
4 5 8 10 15
]~ 'this, is a test.'
this, is a test.
Note that I need the ~ to get the behavior from gerund} that I want.
None of these verbs need ~ when used by themselves, but in context
they do need that.
I hope this is clear enough?
Thanks,
--
Raul
On Wed, Jan 27, 2016 at 9:30 AM, Brian Schott <schott.brian at gmail.com> wrote:
> Raul,
>
> I have been trying to understand your verb word using the following
> sentence from your post.
>
> words'Though of course, it''s possible to format that result
> differently.'
> +------+--+------+--+-+--------+--+------+----+------+-----------+
> |though|of|course|it|s|possible|to|format|that|result|differently|
> +------+--+------+--+-+--------+--+------+----+------+-----------+
>
> As you see above, it seems to work, but I cannot understand it. At one
> point I thought only ;: and tolower alone would be enough but even got
> the error below.
>
> ;:'Though of course, it''s possible to format that result differently.'
> |open quote
> | Though of course, it's possible to format that result differently.
> | ^
> | ;:'Though of course, it''s possible to format that result
> differently.'
>
>
>
> On Wed, Jan 27, 2016 at 7:33 AM, Henry Rich <henryhrich at gmail.com> wrote:
>
>> That's clever.
>>
>> Henry Rich
>>
>> On 1/27/2016 12:15 AM, Raul Miller wrote:
>>
>>> I guess I'd be inclined to do it like this:
>>>
>>> require'web/gethttp'
>>> const=: gethttp 'http://usconstitution.net/const.txt'
>>> words=: [: ;: ' '"_`(I.@:= toupper)`]}~@tolower
>>>
>>> \:~ (<@#/.~,.~.)words const
>>> +---+-----+
>>> |727|the |
>>> +---+-----+
>>> |495|of |
>>> +---+-----+
>>> |306|shall|
>>> +---+-----+
>>> |264|and |
>>> +---+-----+
>>> |202|to |
>>> ...
>>>
>>> Though of course, it's possible to format that result differently.
>>>
>>> Thanks,
>>>
>>>
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
>
>
>
> --
> (B=)
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
More information about the Programming
mailing list