Function application to one-dimensional arrays

Uses
- One-dimensional arrays
- Functions

Function application to an array of domain values yields a same-size array of image values:
((domain:𝕊) (image:𝕊))[Array1D(domain)] : Array1D(image)
((domain:𝕊) (image:𝕊))[Array(domain, i:ℕ.nz)] : Array(image, i)

Function application to an empty array yields an empty array:
((domain:𝕊) (image:𝕊))[EmptyArray(i:ℕ)] : EmptyArray(i)

The rules for performing function application are:
domain_:𝕊, image_:𝕊, f:(domain_ image_), a:Array1D(domain_), f[a] ⇒ Pharo:"a ensureArrayTerm. a applyFn: f reducer: reducer"
domain_:𝕊, image_:𝕊, f:(domain_ image_), a:EmptyArray(0), f[a] ⇒ a

Example

Using the squaring function from example Functions/realFunction, the elements of an array can be squared:
example square[{[1, 2, 3]}] ⇒ {[1, 4, 9]}

The squaring function can also be applied to an empty array:
example square[{[]}] ⇒ {[]}