Как вы умножаете отрицательные числа в JavaScript? [закрыто]

Элегантные системы предоставляют false/0 как декларативный синоним императива fail/0. Пример, когда это полезно, - это когда вы вручную хотите принудительно отступить для побочных эффектов, например:

?- between(1,3,N), format("line ~w\n", [N]), false.
line 1
line 2
line 3

Вместо false/0 вы также можете использовать любую цель, которая терпит неудачу, например, бит Короче:

?- between(1,3,N), format("line ~w\n", [N]), 0=1.
line 1
line 2
line 3

Таким образом, false/0 не является строго необходимым, но довольно приятным.

EDIT: Иногда я вижу новичков, которые хотят указать, например, «мое отношение не выполняется для пустого списка ", а затем добавьте:

my_relation([]) :- false.

в свой код. Это не необходимо, а не - хороший пример использования false/0, за исключением, например, фрагментов отказа, которые программно сгенерированы. Вместо этого сосредоточьтесь на том, чтобы указать, что удерживает за ваши отношения. В этом случае просто оставьте все предложение и определите отношение только для списков, которые не являются пустыми, т. Е. Имеют хотя бы один элемент:

my_relation([L|Ls]) :- etc.

или, если вы также описываете другие термины в дополнение к спискам, используйте ограничение, подобное:

my_relation(T) :- dif(T, []), etc.

Учитывая только (или даже оба) этих двух предложений, запрос ?- my_relation([]). автоматически выйдет из строя. Нет необходимости вводить дополнительное предложение, которое никогда не удастся с этой целью.

-10
задан user2624583 25 January 2015 в 21:11
поделиться