f=:%&2
,.(i.5) f 13
13
6.5
3.25
1.625
0.8125
Linda
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Don Guinn
Sent: Sunday, May 05, 2013 8:33 AM
To: Programming forum
Subject: Re: [Jprogramming] Transcomputational numbers
p=:13 : '((%&2)^:x)y'
,.(i.5) p 13
13
6.5
3.25
1.625
0.8125
However, if you want to duplicate the behavior of %&2 you need:
p =: 3 : 0
1 p y
:
((%&2)^:x)y
)
,.(i.5) p 13
13
6.5
3.25
1.625
0.8125
p 13
6.5
p p 13
3.25
On Sun, May 5, 2013 at 4:48 AM, Linda Alvord <[email protected]>wrote:
> d=:%&2
> d
> %&2
> d 13
> 6.5
> d d 13
> 3.25
> d d d 13
> 1.625
> 3 d 13
> 1.625
> ,.(i.25) d 13
> 13
> 6.5
> 3.25
> 1.625
> 0.8125
> 0.40625
> 0.203125
> 0.101563
> 0.0507813
> 0.0253906
> 0.0126953
> 0.00634766
> 0.00317383
> 0.00158691
> 0.000793457
> 0.000396729
> 0.000198364
> 9.91821e_5
> 4.95911e_5
> 2.47955e_5
> 1.23978e_5
> 6.19888e_6
> 3.09944e_6
> 1.54972e_6
> 7.7486e_7
> d
> %&2
> NB. x u&n y ↔ u&n^:x y
>
> That part is good.
>
> How can you get from there to the power rule?
>
> NB. x u^:n y ↔ x&u^:n y
>
> Linda
>
> -----Original Message-----
> From: [email protected] [mailto:programming-
> [email protected]] On Behalf Of Dan Bron
> Sent: Saturday, May 04, 2013 10:14 AM
> To: [email protected]
> Subject: Re: [Jprogramming] Transcomputational numbers
>
> TL;DR: Simply deleting words will never work. Removing an offending
> word without compensating for its function will break code. To remove
> an offending word, one must compensate by using other words which
> express the same meaning.
>
> Linda wrote:
> > I feel quite confident about removing @: carefully.
> > Viewmat had 5 uses of @:
> > I simplifies the sentence to a simpler version.
>
> > viewmat @: ([ load @:('viewmat'"_)) @: ((Josephus2 % <:@])"0/~) @: >:
> @:i. 32
> > viewmat ([ [: load 'viewmat'"_) ((Josephus2 % [:<: ])"0/~) >:
> i. 32
>
> Let us put aside stylistic questions, and allow that disliking
> conjunctions is as valid as any other preference. In pursuit of that
> preference, what I want to focus on is what it means to remove @: (or
> anything else) /carefully/.
>
> In particular, I want to highlight that _all words have a meaning_.
> And that when people put a word in a sentence, they do it for a
> reason. Use of conjunctions is not random, nor arbitrary, nor are
> conjunctions used just for decoration. Everywhere they're used, they
> have a function and a purpose.
> And if you want to remove them, that's ok, but you must do so with
> consideration for that purpose. In particular, /simply deleting words
> will not work/. If you remove a conjunction, you must make some
> alteration, some substitution, which reproduces its function.
>
> Let's take some examples from your reformulation of the viewmat verb.
> You took <:@], deleted the @, and _reproduced its function_ using [:
> . That's fine. And again, you took load @:('viewmat'"_), removed the
> @:, and _reproduced its function_ using [: . Great!
>
> But then you took >:@:i., deleted the @:, and ... did nothing. And
> again with ((Josephus2 ...)"0/~)@>: you deleted the @ but did not
> compensate for the deletion. And again with viewmat@:... you deleted
> the @: but did nothing to reproduce its function.
>
> Where does that leave us? Well, similar to the earlier comparison
> between
> ^.&1e93 and ^.1e93, you've taken a re-usable verb and created a
> one-time noun. Check out what happens if we try to re-use your version:
>
> original =: viewmat @: ([ load @:('viewmat'"_)) @: ((Josephus2 %
> <:@])"0/~) @: >: @:i.
> linda =: viewmat ([ [: load 'viewmat'"_) ((Josephus2 % [:<:
> ])"0/~) >: i.
>
> original 32 NB. Colorful chart
> original 16 NB. Colorful chart
>
> linda 32 NB. Blank
> linda 16 NB. Blank
>
> So, in deleting the conjunctions, without compensating for their
> intended purpose, you haven't "simplified" the code - you've broken it.
>
> Let's approach this from a different angle. In deleting the three @s
> where you didn't reproduce their functionality with a [:, you were
> saying those three @s were simply unnecessary. You were asserting
> that these words served no purpose, and should be deleted as
> superfluous. In effect, you were saying that when Pepe put them
> there, he didn't know what he was doing!
>
>
> Do you really feel confident in that kind of assertion? Or how about this:
> when you deleted those @s, you replaced them with a space. Which
> means you thought space (juxtaposition) could perform the same
> function as @ . And when you deleted & earlier in this thread, you
> though space could carry its function, too. And similarly for &. and
> @: and ` etc. In effect, you were saying these words are unnecessary,
> that space (juxtaposition) can do for them all, and when Ken
> introduced them into the language, /he/ didn't know what he was doing.
>
> Now, I don't believe that you're thinking "Pepe was wrong, Ken was wrong"
> when you're making these transformations. I'm just highlighting that
> that kind of arrogance is an implication of deleting words without
> compensating alterations, as a kind of reductio ad absurdium. What
> I'm trying to instill in you is the tenet that /simply deleting words will
> never work/.
> And worse than "not work", deleting words will /break code/.
>
> The words we use, we use for a reason. We're trying to convey meaning.
> Removing words from expressions - whether English or J - changes the
> meaning! If you don't like certain types of words, that's fine -
> everyone has his own style. But when you come across a word you don't
> like, rather than simply "let's get rid of that!", I want you your
> first reaction to be "ok, I want to remove that word; how can I
> express it differently?". Or "how can I /replace/ this word I don't
> like with /other words that mean the same thing/?", or, in a more
> formal, J sense: "if I delete a conjunction, how can I reproduce its
> functionality?".
>
> The hitch with that is, the only way to make such changes with
> confidence is to learn what the words @ @: & &: &. &.: ` etc _really
> mean_. You can't express them a different way if you're not sure what
> they mean in the first place.
>
> -Dan
>
> PS: A good exercise for you might be to make another attempt at
> creating a verb equivalent to Pepe's original viewmat function, but without
> using @ .
> The operative word there is /equivalent/. It must produce the same
> results under all conditions, not just a test case or two. You're
> actually pretty close already, and if you just consistently follow
> your original pattern of removing @s and compensating with [:s, you'll get
> there.
>
>
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm