Los operadores son la base de cualquier lenguaje de programación. Por lo tanto, la funcionalidad del lenguaje de programación LISP está incompleta sin el uso de operadores. Podemos definir operadores como símbolos que nos ayudan a realizar cálculos matemáticos y lógicos específicos sobre operandos. En otras palabras, podemos decir que un operador opera los operandos.
Diferentes tipos de operadores en LISP
- Operadores aritméticos
- Operadores de comparación
- Operadores logicos
- Operadores bit a bit
Operador aritmético:
Los operadores aritméticos se utilizan para realizar operaciones matemáticas como suma, resta, multiplicación y división.
Operador | Descripción | Sintaxis |
---|---|---|
Operador de suma (+) | suma los dos numeros | (+ num1 num2) |
Operador de sustracción (-) | Resta el segundo número del primer número | (- num1 num2) |
Multiplicación(*) | Multiplicar dos números | (* num1 num2) |
División(/) | Dividir los dos números | (/num1 numero2) |
Módulo (mod) | Obtener el resto de dos números | (MOD num1 num2) |
Incremento(incf) | Incrementar número por valor dado | (incf num1 num2) |
Decremento(decf) | Decrementar número por valor dado | (decf num1 num2) |
Ejemplo: operadores aritméticos
Lisp
;set value 1 to 300 ; set value 2 to 600 (setq val1 300) (setq val2 600) ;addition operation (print (+ val1 val2)) ;subtraction operation (print (- val1 val2)) ;multiplication operation (print (* val1 val2)) ;division operation (print (/ val1 val2)) ;modulus operation (print (MOD val1 val2)) ;increment a by 10 (print (incf val1 val2)) ;decrement b by 20 (print (decf val1 val2))
Producción :
900 -300 180000 1/2 300 900 300
Operador de comparación:
Estos operadores se utilizan para comparar números tomando dos o más operandos.
Operador | Descripción | Sintaxis |
---|---|---|
= | Este operador verifica si los valores de los operandos son todos iguales o no, si es así, devolverá T (Verdadero), de lo contrario, NIL | (= número1 número2) |
/= | Este operador verifica si los valores de los operandos no son iguales, si es así, devolverá NIL, de lo contrario T (Verdadero) | (/= núm1 núm2) |
> | Este operador verifica si los valores del operando 1 son mayores que el operando 2, si es así, devuelve True, de lo contrario, NIL | (> num1 num2) |
< | Este operador verifica si los valores del operando 1 son menores que el operando 2, si es así, devuelve True, de lo contrario, NIL | (< número1 número2) |
>= | Este operador verifica si los valores del operando 1 son mayores o iguales que el operando 2, si es así, devuelve True, de lo contrario, NIL | (>= número1 número2) |
<= | Este operador verifica si los valores del operando 1 son menores o iguales que el operando 2, si es así, devuelve True, de lo contrario, NIL | (<= número1 número2) |
máximo | Este operador devuelve el valor máximo. | (máx. num1 num2) |
min | Este operador devuelve el valor mínimo. | (mínimo num1 num2) |
Ejemplo: Operadores de comparación
Lisp
;set value 1 to 100 ; set value 2 to 200 (setq val1 100) (setq val2 200) ;check val1 is equal to val2 or not (print (= val1 val2)) ;check val1 is not equal to val2 or not (print (/= val1 val2)) ;check val1 is greater than val2 or not (print (> val1 val2)) ;check val1 is less than val2 or not (print (< val1 val2)) ;check val1 is greater than or equal to val2 or not (print (>= val1 val2)) ;check val1 is less than or equal to val2 or not (print (<= val1 val2)) ;get maximum number among val1 and val2 (print (max val1 val2)) ;get minimum number among val1 and val2 (print (min val1 val2))
Producción:
NIL T NIL T NIL T 200 100
Operador lógico:
Common LISP admite 3 tipos de operadores lógicos en valores booleanos
Operador | Descripción | Sintaxis |
---|---|---|
y |
Este operador toma dos números que se evalúan de izquierda a derecha. Si todos los números se evalúan como no nulos, se devuelve el valor del último número. De lo contrario, se devuelve nil. |
(y num1 num2) |
o | Este operador toma dos números que se evalúan de izquierda a derecha. Si algún número se evalúa como no nulo, se devuelve el valor del último número. De lo contrario, se devuelve nil. | (o num1 num2) |
no | Este operador toma un número y devuelve T (verdadero) si el argumento se evalúa como NIL | (no num1) |
Ejemplo de Operadores Lógicos
Lisp
;set value 1 to 50 ; set value 2 to 50 (setq val1 50) (setq val2 50) ;and operator (print (and val1 val2)) ;or operator (print (or val1 val2)) ;not operator with value1 (print (not val1)) ;not operator with value2 (print (not val2))
Producción:
50 50 NIL NIL
Operador bit a bit:
Estos operadores se utilizan para realizar la manipulación de bits individuales de un número.
Operador | Descripción | Sintaxis |
---|---|---|
registro | El operador devuelve AND lógico bit a bit de dos números | (logand num1 num2) |
logior | El operador devuelve OR inclusivo bit a bit de dos números | (logior num1 num2) |
registro | El operador devuelve OR exclusivo bit a bit de dos números | (logxor num1 num2) |
lognor | El operador devuelve bit a bit NO de dos números | (lognor num1 num2) |
logeqv | El operador devuelve NOR exclusivo bit a bit de dos números | (logeqv num1 num2) |
conteo de registros | El operador devuelve el número de unos en la representación binaria de un entero | (recuento de registros num1) |
ceniza | Desplaza los bits a la izquierda si el conteo es positivo de lo contrario a la derecha | (número de cenizas) |
Ejemplo: operadores bit a bit
Lisp
;set value of variable val1 to 10 (setq val1 10) ;set value of variable val2 to 5 (setq val2 5) ;; logand operator (print (logand val1 val2)) ;; logior operator (print (logior val1 val2)) ;; logxor operator (print (logxor val1 val2)) ;; lognor operator (print (lognor val1 val2)) ;; logeqv operator (print (logeqv val1 val2)) ;; logcount operator (print (logcount val2)) ; arithmetic left shift (print (ash val1 val2)) ; arithmetic right shift (print (ash val1 (- val2)))
Producción :
0 15 15 -16 -16 2 320 0
Publicación traducida automáticamente
Artículo escrito por aniruddhashriwant y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA