Mathematica 54 41 байт
С абсолютно умным предложением от LegionMammal978, которое экономит 13 байтов.
If[#>0,FromLetterNumber,,LetterNumber]@#&
If[#>0,FromLetterNumber,,LetterNumber]служит единственной цели принятия решения - применять FromLetterNumberили LetterNumberвводить.
#>0будет удовлетворен, если на входе, #будет число, в этом случае FromLetterNumberбудет выбран.
Однако #>0не будет ни истинным, ни ложным, если #это буква, и LetterNumberбудет выбран вместо.
If[#>0,FromLetterNumber,,LetterNumber]@#&["d"]
4
If[#>0,FromLetterNumber,,LetterNumber]@#&[4]
d
В Mathematica, FromLetterNumberа LetterNumberтакже будет работать с другими алфавитами. Для этого требуется всего несколько байтов.
If[# > 0, FromLetterNumber, , LetterNumber][#, #2] &[4, "Greek"]
If[# > 0, FromLetterNumber, , LetterNumber][#, #2] &[4, "Russian"]
If[# > 0, FromLetterNumber, , LetterNumber][#, #2] &[4, "Romanian"]
δ
г
б
If[# > 0, FromLetterNumber, , LetterNumber][#, #2] &[δ, "Greek"]
If[# > 0, FromLetterNumber, , LetterNumber][#, #2] &[г, "Russian"]
If[# > 0, FromLetterNumber, , LetterNumber][#, #2] &[b, "Romanian"]
4
4
4