switch type?/word :optional [
word! [ print "word" ]
string! [ print "string" ]
]
OR
switch type? :optional reduce [
word! [ print "word" ]
string! [ print "string" ]
]
Причина в том, что REBOL не уменьшает («оценивает») случаи в операторе switch. Без уточнения /word
функция type?
возвращает datatype!
, но оператор switch пытается сопоставить это с word!
, и это не удается.
Я понимаю, что это может сбивать с толку, поэтому вам лучше всего либо преобразовать тип в строку (как вы это сделали), либо использовать один из двух предложенных мной идиом. Я предпочитаю первый, используя type?/word
.