drab wrote:Reduction with any function of a scalar should return the scalar unchanged.

But these functions give an error: ⍟○?⊥⊣⊢≡≢⍱⍲⊂⍋⍒⍳∊⍸⍷∩⊆⊇π,⍪⍕

And these functions give the wrong answer: =≠≤<>≥∪∼§

Reduction with any function along an axis of length 1 should return the array reshaped without that axis.

But these functions give an error: ⍟○?⊥⊣⊢≡≢⍱⍲⊂⍋⍒⍳∊⍸⍷∩⊆⊇π,⍪⍕

And these functions give the wrong answer: =≠≤<>≥∪∼§

This behavior is correct and intended. The definition you cite has various problems I've attempted to address in

Reduction of Singletons which lays out the set of rules for that operation in NARS2000.

The idea is to eliminate anomalous results such as

+/'A' ←→ 'A' by requiring that the reduction function have an Identity Element and that Reduction follows these rules:

f/V ←→ ⊂(↑V) f ⊃f/1↓V (for 2<⍴V) (1-3a)

←→ ⊂(0⊃V) f 1⊃V (for 2=⍴V) (1-3b)

←→ ⊂(↑V) f ⊃f/1↓V (for 1=⍴V) (1-3c)

←→ ⊂IdentityElement (for 0=⍴V) (1-3d)

Combining (1-3c) and (1-3d) yields a definition for Reduction of Singletons of

f/V ←→ ⊂(↑V) f IdentityElement (for 1=⍴V)For example, this means that

+/'A' ←→ 'A' + 0 ←→ DOMAIN ERROR

⍟/23 ←→ DOMAIN ERROR

=/23 ←→ 23 = 1 ←→ 0

among others. One pleasant effect of these rules is that the result of Reduction is always in the range of the Reduction function, so that (among other things) we can't return

'A' from

+/'A' because the Plus function never returns a character, and we can't return

23 from

=/23 because the Equal function never returns

23. I appreciate that this differs from the Conventional Wisdom, but it makes a whole lot of sense to me.

Please review the answers you think are wrong and the expressions that signal an error in the light of these rules and let me know if there's anything I've missed..