Make that "but [ and ] are actions"

Kip Murray wrote:
> I'm coming in late and have only scanned previous posts, but my _intuitive_ 
> take 
> is that explicit programming of verbs is programming by example, "do with the 
> arguments what you see me doing with x and y".
> 
> Tacit programming focuses on the operations to be performed: it gives a 
> recipe 
> of operations to carry out instead of an example to be followed.
> 
>     f =: 4 : '(x^2)+(2*x*y)+(y^2)'  NB. (x+y)^2
>     2 f 3
> 25
> 
>     g =: [: +/ (*: @ [) , (2 * *) , (*: @ ])
>     2 g 3
> 25
> 
> The f program says, "substitute the arguments and do x^2 + 2 x y + y^2" 
> "Substitute the arguments" is the essence of explicit programming.
> 
> The g program says, "do the sum of the list made up of square of left, 2 
> times 
> product, and square of right."
> 
> Verbs [ and ] may look like x and y in disguise, but [ and ] actions: find 
> the 
> left argument, find the right argument, while x and y are placeholders.
> 
> The tacit programmer learns to think of [: as "the" and @ as "of", and finds 
> the 
> tacit form understandable as a series of actions to be performed.
> 
> The explicit programmer is describing actions, too: the actions are plug and 
> chug, something we all have been taught, so we understand and like explicit 
> programs.
> 
> The tacit programmer is saying, here are the operations to perform, carry 
> them 
> out in the specified order and you will get the result.
> 
> Kip
> 
> 
> Sherlock, Ric wrote:
>>> From: Dan Bron
>>>
>>> No.  Let's go back to fundamentals:
>>>
>>>     A tacit expression can take arguments, but doesn't mention them.
>>>
>>> So  +`-  isn't tacit.  Which makes sense: we intuit that something
>>> about nouns excludes them from being tacit.  Which is why my
>>> second attempt at a definition, using the parse table, almost works.
>>>
>>> The special thing about nouns, that prevents them from being tacit, is
>>> that they can't take arguments.  Nouns are the lowest level
>>> of the part-of-speech hierarchy.  Nouns can take no arguments, verbs
>>> can take nouns as arguments, operators can take nouns or
>>> verbs as arguments, and nothing can take operators as arguments.
>>>
>> Yes I was also thinking of nouns as being important in the definition. In 
>> addition to the above, something along the lines of:
>>     A tacit expression does not produce a noun if assigned to a name
>>
>> So while the expression + is tacit, 3+5 isn't but 3+5: is.
>>
>> This sentence contains tacit expressions defining the functions sum, mean 
>> and integers. But the sentence is not a tacit expression because its result 
>> is a noun.
>>    +/ (+/ % #)  i. 4 5
>>
>> Does the definition also need to include something about being able to 
>> preserve its features if it is enclosed in parentheses or assigned to a 
>> name? In the sentence above I could assign everything before the 4 to a 
>> name. That name could take arguments, doesn't mention them and isn't a noun, 
>> but it wouldn't preserve its features.
>> The following tacit expression would. 
>>    ([: +/ (+/ % #))@i.
>>
>> ----------------------------------------------------------------------
>> 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

Reply via email to