>>>> (f∘g)(x) ≡ f(g(x)) > > And yet, f and g are not defined here, and neither are x.
Because of course they need not to. Whatever the domains and codomains of f and g, they do not change the meaning of composition as defined by the above identity. But leave that identity, and consider how the DoJ defines monadic @ : u@v y ↔ u v y Where are the 'definitions' of u, v, and y? > (And, for > that matter, the grammar associated with parenthesis are not defined > here.) This is a ridiculous nitpicking which does not need to be commented further. > Thus, formal definitions depend on the definitions of the symbols used > in the definition. False, as exemplified by the definition of @ quoted above. > More generally, Mathematics deals with numerous > definitions for the symbols it uses. There are numerous branches of > mathematics, each with their own conventions for these definitions. Irrelevant to the discussion of composition and functors. >>> One issue, here, is that the definitions of f, g and x are contextual. >> What do you mean by 'contextual'? > I mean that, for example, the definition of x depends on the context > where the phrase that contains x is used. Again, how does the definition of @ depend on a 'context'? (Not that that is the only counter-example available, far from that …) > In one context, x might be 1 > In another context, x might be 2 > ... > ... And again, the context of (f∘g)(x) ≡ f(g(x)) is no different than that of u@v y ↔ u v y . How is the definition of @ 'contextual'? Are you saying that, in the second identity, the meaning of @ depends on what y 'might be'? > And yet none of these statements were part of that "formal definition". Why should they be, if they are assumed anyway. Do you consider u@v y ↔ u v y 'informal' or broken in some way due to not including the same trivially assumed statements? >> How can a function have two different domains without being in fact >> two different functions? Doesn't make sense to me. > > A domain is the set of argument values for which a function is defined. So far, correct. > A function can have multiple definitions. If so, all they are different functions, not one function. > How else can we talk about extending a function defined on > integers to be a function defined on real numbers? By defining a new, different function acting on all reals. We don't keep and use both at the same time, and no confusion arises. > No ranks are changed. > The rank of the derived verb will sometimes be different, for > different sentences. But whether this is a significant issue > depends on the domain under consideration. It is significant enough to make @ and @: different adverbs, which produce (in general) different verbs from the same arguments. Hence, as I said, if @ is composition in the mathematical sense, @: isn't. > Your formal definition did not require that a verb be produced. > So why is this an issue now? It did require this in exactly the same sense that u@v y ↔ u v y does. >> If x is an adverb, so that g(x) is a verb, then f(g(x)) is a hook >> – again, not a composition. > I do not know what you are talking about here. What is not clear? The example was yours. You took the phrase f(g(x)) with x an adverb and said that the phrase might represent composition. What I am pointing to is that this cannot be true, even if f and g are verbs: the result is a hook, and a hook is never a composition (in the same sense that @ or its applications are compositions). > If f&g is composition then clearly f(g(x)) is composition. False. Not only the two objects are different, they are of different types. E.g., if f and g are numeric functions, then f&g is also a numeric function (a verb), while f(g(x)) is a number. (Note that all the other examples that you gave in this group, even though most of them were not compositions, but at least they designated some verbs.) >> We have to stick to the mathematical meaning of composition because >> this is what the definition of functor depends on, and we were >> discussing functors ... > Except we seem to have new constraints appearing as new examples > are introduced? Examples of what? If of functors, then according to what definition? Since you were referring to the notion of functor in Haskell, I am assuming a functor is something that has a fmap function satisfying the homomorphic identity I quoted – and that relies on the mathematical, Haskell, ML, etc. understanding of composiion, represented in J as @ and &. >>> You seem to be saying that context is irrelevant. >> The context of what? In defining composition, I see no context at all. > The context under consideration. This is the context that supplies > definitions for the functions and which defines their domains. This has been talked over enough already. See above. > Let's consider: > f @: g > ... > So I am not sure what you are trying to say. If f and g – and not their modified copies – were subjected to composition, then the result would be a verb with some rank that apparently depends on the ranks of f and g. That rank would not invariably be infinite, as is the case with @:. Therefore, what @: does is not just a composition (although it resembles one). Moreover, if @: just composed its argument verbs f and g, all of the following conditions would be kept: composition is a true one (equivalent to ∘ in mathematics); f takes part in the composition unmodified; similar of g; the verb resulting from composing f on g is left unmodified. From @: producing verbs of always infinite ranks, it follows that at least one of the above conditions is violated. I really am not sure how precisely @: achieves its result – which of the said conditions it violates – but this is secondary, an implementational detail of @:. The important consequence of the above is that @: is not (strictly speaking, which we strive for here) composition. All the more so in view of the DoJ saying @ – a different adverb – is the composition. > f@g is not always syntactically valid. Sure, and there are even more ways for f@g to become invalid … When I wrote 'any pair of arguments' I obviously meant any pair of verbs for which f@g makes sense. But of course, here you are nitpicking again, because your note is actually tangent to the content of the statement that I made and you chose to comment. ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm