Los paquetes son un mecanismo central en el que se usa Common Lisp para administrar diferentes conjuntos de nombres y evitar las colisiones de nombres que pueden ocurrir si varios archivos contienen las mismas variables o funciones con el mismo nombre. Comprender el sistema de paquetes para dividir correctamente nuestro código en varios archivos y luego cargarlos juntos como un solo programa. Los paquetes facilitan que Common Lisp divida el espacio de nombres.
Un paquete es un objeto Lisp como un número, una lista o una string de caracteres. En particular, se define el paquete tipo. Un paquete puede ser el valor de un símbolo, dado como argumento a una función, devuelto por una función, etc.
Sintaxis para crear un paquete LISP:
(defpackage :package-name (:use :Function1 ...) (:export :Geek1 :Geek2 ...) )
Dónde,
- defpackage: este paquete se utiliza para crear un usuario para definir el paquete.
- package-name: Define el nombre del paquete creado por el usuario.
- :use: Esta función es utilizada en el código por el paquete.
- :export: representa un paquete externo.
make-package package-name &key :StudentsNames :use
make-package se utiliza para crear paquetes definidos por el usuario.
Ejemplo 1:
Lisp
/* Making a Greeting Package (make-package :Ayush_Agarwal) (make-package :Piyush_Agarwal) (make-package :Keshav_Agarwal) (in-package Ayush_Agarwal) (defun greet () (write-line "This is Ayush_Agarwal ,GoodMorning") ) (greet) (in-package Piyush_Agarwal) (defun greet () (write-line "This is Piyush_Agarwal ,GoodMorning") ) (greet) (in-package Keshav_Agarwal) (defun greet () (write-line "This is Keshav_Agarwal , GoodMorning") ) (in-package Ayush_Agarwal) (in-package Piyush_Agarwal) (in-package Keshav_Agarwal) (greet)
Producción:
Para eliminar un paquete LISP usamos la siguiente sintaxis.
Sintaxis:
(delete-package Package-name)
- delete-package: Nos permite eliminar un paquete definido por el usuario.
Ejemplo 2:
Lisp
/* Deleting a user defined package in main.lisp- (make-package :Ayush_Agarwal) (make-package :Piyush_Agarwal) (make-package :Keshav_Agarwal) (in-package Ayush_Agarwal) (defun greet () (write-line "This is Ayush_Agarwal ,GoodMorning") ) (greet) (in-package Piyush_Agarwal) (defun greet () (write-line "This is Piyush_Agarwal ,GoodMorning") ) (greet) (in-package Keshav_Agarwal) (defun greet () (write-line "This is Keshav_Agarwal ,GoodMorning") ) (greet) (in-package Ayush_Agarwal) (delete-package Ayush_Agarwal) (greet) (in-package Piyush_Agarwal) (greet) (in-package Keshav_Agarwal) (greet)
Producción:
Publicación traducida automáticamente
Artículo escrito por ayushcoding100 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA