LaTeX3 – ¿Cuál es la diferencia entre los módulos l3seq y l3clist?

Pregunta:

LaTeX3 proporciona los dos módulos seq y clist .

¿Cuál es la diferencia?

El clist módulo es introducido por

Las listas de comas contienen datos ordenados donde los elementos se pueden agregar al final izquierdo o derecho de la lista.

El módulo seq es introducido por

LaTeX3 implementa un tipo de datos de "secuencia", que contiene una lista ordenada de entradas que pueden contener cualquier texto equilibrado.

¿Cuáles son los beneficios y los inconvenientes de los módulos?

Respuesta:

Los dos módulos comparten muchas características y hay muchas tareas que, en principio, pueden abordarse utilizando cualquiera de ellos. Para comprender la razón de la existencia de ambos, primero destacaré lo que seq puede hacer que el clist no puede.

Una lista separada por comas se parece a

a,b,c,d,,

lo que significa que, obviamente, los elementos no pueden contener una coma (sin protección de llaves). Por otro lado, el tipo de datos seq se construye de manera que un elemento puede contener cualquier texto equilibrado. Eso incluye no solo comas, sino también entradas fundamentalmente vacías.

El último punto se produce porque una lista de comas es esencialmente una estructura "orientada al usuario", mientras que una secuencia está destinada a los programadores. También verá esto si intenta agregar un espacio a una lista de comas: los espacios se recortan de los elementos de la lista de comas y, por lo tanto, algo como

a, b , , c , d

se trata de manera idéntica a

a,b,c,d

Como las secuencias tienen una estructura interna para dar soporte a los programadores, también es posible optimizar la implementación en lugar de las listas de comas. Eso tiene consecuencias para el rendimiento en algunos casos.

Entonces, en términos de cuál es apropiado, preferiría las listas de comas cuando se trata de cosas hacia el nivel del usuario, por ejemplo, cuando se requiere entrada / salida del usuario. Por otro lado, las listas de elementos totalmente arbitrarias se manejan mejor como secuencias. Hay un elemento de preferencia personal en el término medio (donde ambos funcionarán).

En el pasado, sugerí clist funciones de clist completo, excepto por una capa de conversión (para que tuviéramos una única "forma verdadera"). Sin embargo, si se trata de casos en los que básicamente todo se puede manejar con una lista de comas, hay un impacto en el rendimiento que es difícil de justificar.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım