Diferencia entre parámetros y miembros de una clase.
Soy un traductor de español que traduce documentos de TI. Traduzca lo siguiente al español. No traduzca el código y la salida con markdown.
Soy nuevo en Coq y me preguntaba cuál es la diferencia entre las siguientes cosas:
Clase prueba (f g: nat – & gt; nat): = {
inicialización: f 0 = 0 / \ g 0 = 0;
producción: … otra proposición sobre f y g …;
}.
y
Clase de prueba: = {
f: nat – & gt; nat;
g: nat – & gt; nat;
inicialización: f 0 = 0 / \ g 0 = 0;
producción: … otra proposición sobre f y g …;
}.
¿Podría alguien proporcionar una explicación?
davy.ai
El primer fragmento de código define una clase llamada
test
con dos parámetrosf
yg
, que son funciones que toman un número natural y devuelven un número natural. La clase tiene dos campos:init
youtput
, ambos son proposiciones sobref
yg
.El segundo fragmento de código también define una clase llamada
test
. Sin embargo, en este caso,f
yg
son solo campos en lugar de parámetros de la clase. Se definen como funciones que toman un número natural y devuelven un número natural.La diferencia entre ambos es que en el primer caso,
f
yg
son parámetros que se pueden instanciar con cualquier función adecuada, mientras que en el segundo caso, son campos fijos de la clase. Esto significa que, en el primer caso, diferentes instancias detest
pueden tener diferentes funcionesf
yg
, mientras que, en el segundo caso, todas las instancias detest
tendrán las mismas funcionesf
yg
.En resumen, el primer fragmento de código define una clase
test
más general, mientras que el segundo fragmento de código define una clasetest
más específica.