Adjoint or transpose of Char or Vector{Char}

Scalar case:

julia> 1'
1

julia> 'a''
ERROR: MethodError: no method matching adjoint(::Char)
The function `adjoint` exists, but no method is defined for this combination of argument types.
  ...

Vector case:

julia> [1;2;3]'
1×3 adjoint(::Vector{Int64}) with eltype Int64:
 1  2  3

julia> ['x';'y';'z']'
1×3 adjoint(::Vector{Char}) with eltype Union{}:
Error showing value of type LinearAlgebra.Adjoint{Union{}, Vector{Char}}:
  ...

There has been some discussion about the adjoint of a String and Vector{String}. The rationale for not extending adjoint to Strings make sense. However, Chars can behave like integers, can be converted to integers with codepoint, have a notion of distance, can be added to and subtracted from, etc. I’m curious why Chars are also prohibited from having adjoints.

Char doesn’t have an inner product (dot in Julia). y = adjoint(x) maps x to the dual space (ala Riesz): it gives the linear form y such that the inner product \langle x, z \rangle is equal to y z.

If you want to flip an “column vector” of Char to a “row vector”, use permutedims:

julia> permutedims(['x';'y';'z'])
1×3 Matrix{Char}:
 'x'  'y'  'z'