Pregunta

Muchas propiedades comúnmente útiles de las funciones tienen nombres concisos. Por ejemplo, asociatividad, conmutatividad, transitividad, etc.

Estoy haciendo una biblioteca para usar con Comprobación rápida Eso proporciona definiciones abreviadas de estas propiedades y otras.

El que tengo una pregunta es idempotencia de funciones unarias. Una función F es ideMpotent IIF ∀X. fx == f (fx).

Hay una generalización interesante de esta propiedad para la que estoy luchando por encontrar un nombre igualmente conciso. Para evitar el sesgo de las opciones de nombres de las personas sugiriendo una, lo nombraré P y proporcionaré la siguiente definición:

Una función F tiene la propiedad P con respecto a G IIF ∀X. fx == f (gx). Podemos ver esto como una generalización de la idempotencia redefiniendo la idempotencia en términos de P. una función F es idejente, si tiene la propiedad P con respecto a sí misma.

Para ver que esta es una propiedad útil, observa que justifica una regla de reescritura que puede usarse para implementar una serie de optimizaciones comunes. Esto a menudo, pero no siempre, surge cuando G es algún tipo de función de canonicalización. Algunos ejemplos:

  • length es P con respecto a map f (Para todas las opciones de F)
  • Convertir a CNF es P con respecto a la conversión a DNF (y viceversa)
  • Normalización unicode Para formar NFC es P con respecto a la normalización para formar NFD (y viceversa)
  • minimum es P con respecto a protuberancia

¿Cómo nombrarías esta propiedad?

¿Fue útil?

Solución

Uno puede decir que map f es length-Serving, o que length es invariante bajo map fEn g. Entonces, ¿qué tal:

  • G se presenta F.
  • F es invariante bajo (aplicando) g.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top