Я пытаюсь указать DCG для действительного числа, который будет использоваться как так:Как указать DCG для действительного числа?
value(Number) --> valid_number(Number).
В основном проверка, если заданное значение является числовым, (это также может быть переменной, поэтому необходимо проверить).
Я не знаю, как построить это valid_number
DCG/предикат.
Прямо сейчас я просто:
valid_number('1') --> ['1'].
valid_number('2') --> ['2'].
...
Который работает, но это, очевидно, ужасно. Пытаясь что-то вроде:
valid_number(Number) --> { integer(Number), Number = Number }.
Что и не работает, и правда выглядит довольно грубо, а также (я извиняюсь, очень новый Пролога и пытается узнать лучшие практики).
Как я буду строить этот DCG/предикат, который проверяет, является ли это номером?
Выполняется задача 'Number = Number' * always *. Вы можете удалить его. – mat
Взгляните на [это] (http://www.swi-prolog.org/pldoc/doc/swi/library/dcg/basics.pl?show=src#number/3) для вдохновения. –