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