LISP - Operadores de comparação
A tabela a seguir mostra todos os operadores relacionais suportados pelo LISP que comparam entre números. No entanto, ao contrário dos operadores relacionais em outras linguagens, os operadores de comparação LISP podem ter mais de dois operandos e funcionam apenas com números.
Assumir variável A contém 10 e variável B contém 20, então -
Operador | Descrição | Exemplo |
---|---|---|
= | Verifica se os valores dos operandos são todos iguais ou não, se sim a condição torna-se verdadeira. | (= AB) não é verdade. |
/ = | Verifica se os valores dos operandos são todos diferentes ou não, se os valores não são iguais a condição torna-se verdadeira. | (/ = AB) é verdadeiro. |
> | Verifica se os valores dos operandos estão diminuindo monotonicamente. | (> AB) não é verdade. |
< | Verifica se os valores dos operandos estão aumentando monotonicamente. | (<AB) é verdade. |
> = | Verifica se o valor de algum operando à esquerda é maior ou igual ao valor do próximo operando à direita. Se sim, a condição se torna verdadeira. | (> = AB) não é verdade. |
<= | Verifica se o valor de algum operando esquerdo é menor ou igual ao valor de seu operando direito; em caso afirmativo, a condição torna-se verdadeira. | (<= AB) é verdadeiro. |
max | Ele compara dois ou mais argumentos e retorna o valor máximo. | (AB máx.) retorna 20 |
min | Ele compara dois ou mais argumentos e retorna o valor mínimo. | (min AB) retorna 10 |
Exemplo
Crie um novo arquivo de código-fonte denominado main.lisp e digite o seguinte código nele.
(setq a 10)
(setq b 20)
(format t "~% A = B is ~a" (= a b))
(format t "~% A /= B is ~a" (/= a b))
(format t "~% A > B is ~a" (> a b))
(format t "~% A < B is ~a" (< a b))
(format t "~% A >= B is ~a" (>= a b))
(format t "~% A <= B is ~a" (<= a b))
(format t "~% Max of A and B is ~d" (max a b))
(format t "~% Min of A and B is ~d" (min a b))
Quando você clica no botão Executar, ou digita Ctrl + E, o LISP executa imediatamente e o resultado retornado é -
A = B is NIL
A /= B is T
A > B is NIL
A < B is T
A >= B is NIL
A <= B is T
Max of A and B is 20
Min of A and B is 10