В некоторых языках (Pascal, Python) символы не существуют: это просто строки длины 1.
В других языках (C, Lisp) символы существуют и имеют различный синтаксис, например 'x' или # \ x.
Руби в основном была на стороне "символов не существует", но порой казалось, что не совсем уверена в этом выборе. Если вы действительно хотите использовать символы в качестве типа данных, Ruby уже присваивает значения символам '' и "", так что? X выглядит примерно таким же разумным, как и любая другая опция для литералов символов.
Для меня это просто вопрос, что вы имеете в виду. С таким же успехом вы можете сказать foo [0] = 98, но вы используете целое число, когда вы действительно имеете в виду символ. Использование строки, когда вы имеете в виду символ, выглядит для меня одинаково странным: набор операций, которые они поддерживают, почти полностью отличается. Один - это последовательность другого. Вы бы не заставляли Math.sqrt брать список чисел, а просто смотреть только на первое. Вы не должны опускать "integer" из языка только потому, что вы уже поддерживаете "list of integer".
(На самом деле Lisp 1.0 делал именно это - церковные цифры для всего! - но производительность была ужасной, так что это был один из огромных достижений Lisp 1.5, который сделал его пригодным для использования в качестве реального языка, еще в 1962 году.)