On Fri, Oct 21, 2011 at 11:12 AM, Viktor Cerovski
<[email protected]> wrote:
> Raul Miller-4 wrote:
>> On Fri, Oct 21, 2011 at 9:08 AM, Viktor Cerovski
>>> and that is the monoidal zero wrt list appending.
>>> There is, however, no an "empty number", neither in J nor
>>> mathematically.
>>
>> That depends, of course -- 0 could be thought of as an empty number.
>>
>> The issue, of course, is that you are not using "empty" to refer to a
>> quality of a number -- you are using it to refer to a quality of an
>> array.
>>
> I never used terms like "quality of something". I merely talk about monoids
> etc, and so did you without knowing it when you defined the number of
> elements of an array, as well as when you define
Indeed -- I used "quality of something" to describe my understanding
of the relevant aspects of abstraction. But, if that perspective
bothers, you we can try others.
>> A number is an array which has a shape whose product is 1
>> and a value whose fill element is 0.
>>
> (notice that I strictly distinguish between 1 1 1 $ 123 and 123,
> the former for me is an array, and only the latter a number,
> and do not ever associate fill element with an array).
Why?
In the case of 1 1 1 $ 123, the number is 123. That's just one
number. The english word "a" indicates a quantity of one, and there
is indeed one number here which is 123.
The distinction you are drawing, looks to me like a claim that having
one number which has the value 123 is a fundamentally different
concept from having a value of 123 as a number. And I just cannot
find any reason to believe that that kind of distinction is
meaningful.
That the number 1 is repeated three times would be like emphasizing
"one" three times in english. To make it a little easier to parse, we
can introduce the phrase "instance of" to highlight the conceptual
boundaries: I have one instance of one instance of one instance of
the value 123, and since the value 123 is a numeric value I that means
that I have a number here.
> Let's see the hidden monoid in your definitions:
Before we go any further down that road, I would like to have a
definition of "monoid". If I ask google for one, I get:
In abstract algebra, a branch of mathematics, a monoid is an
algebraic structure with a single associative binary operation
and an identity element.
If I use this definition, I would understand you to be saying that my
*/@$ has a monoid because multiplication is associative and
multiplication has an identity element which is 1. But things you say
later make me suspect that this is not the definition that you are
using.
That said, please feel free to replace */@$ with #@, if the former
causes technical difficulties for you.
> Since I'm so stuck on monoids, why not look how this is done in
> Haskell. After all, if anybody knows anything about them,...
>
> Prelude> foldr1 (*) []
> *** Exception: Prelude.foldr1: empty list
> Prelude> foldr1 (+) []
> *** Exception: Prelude.foldr1: empty list
>
> Aha! Haskell doesn't know how to sum up elements of
> an empty list!
>
> "Why, of course", says Haskeller, "it just does not make sense."
So now I am left wondering why -- if "monoid" has the meaning
suggested by google -- the inability of our Haskeller to recognize my
monoid's identity element should be significant.
--
Raul
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm