Sei sulla pagina 1di 3

PROGRAMACIN EN SYSTEM-RPL

CAPTULO 12 OBJETOS META


Un objeto meta es una coleccin de objetos de n elementos y el recuentos de esos objetos (en nmeros binarios). Un objeto meta puede ser otra forma de representacin de un objeto compuesto. El comando INNERCOMP explotar cualquier objeto compuesto en un objeto meta. La transformacin opuesta se hace por varios rdenes diferentes, dependiendo del tipo de objeto compuesto. Los comandos disponibles se listan es la seccin 11.1.2 Note que #0 (en el primer nivel de la pila, representa un vaco) del objeto meta, representa un objeto meta nulo. Es posible agrupar los objetos meta en un solo objeto, generalmente el nombre de stos rdenes en la pila es en minscula. Sin embargo algunos comandos tienen nombres que no guardan relacin con lo que hacen, porque sus funciones no siempre se usan respecto a los objetos meta, estos se nombran con otro propsito en la mente. Tambin existen objetos meta en el lenguaje del usuario, pero el recuento de esos elementos es en nmeros reales, no en binarios. Sin embargo stos no son comunes. 12.1 REFERENCIA 12.1.1 OPERACIONES EN LA PILA
DIRECCIN NOMBRE 0326E NDROP 37032 35FB0 DROPNDROP #1+NDROP DESCRIPCIN ( meta ) Debe llamarse drop, es decir hace DROP(borra) un objeto meta ( meta ob ) Debe llamarse DROPdrop. Primero borra un objeto luego un objeto meta (ob meta ) Debe llamarse dropDROP. Primero borra meta luego un objeto aka: N+1DROP ( meta F ) Debe llamarse dropFALSE. Borra un objeto meta e inserta FALSE ( obn..ob1 #n #0 ) Reemplaza el objeto meta por otro nulo(objeto meta nulo) ( meta1 meta2 meta2 meta1 ) Debe llamarse SWAP. Pero este comando funciona con objetos meta. ( meta1 meta2 meta3 meta2 meta3 meta1 ) Debe llamarse rot. Hace ROT con objetos meta. ( meta1 meta2 meta3 meta3 meta1 meta2 ) Debe llamarse unrot. Hace UNROT con objetos meta. ( meta1 meta2 meta2 ) Pgina 1 de 3

28211 391006 29A5D 29A8F 29B12 3695A

NDROPFALSE NDROPZERO psh roll2ND unroll2ND SWAPUnNDROP

Autor: Canchari Gutirrez, Edmundo Comentarios: edcivilic@lycos.es

PROGRAMACIN EN SYSTEM-RPL

36FA6

metaROTDUP

Debe llamarse swapdrop. Hace SWAPDROP ( meta1 meta2 meta3 meta2 meta3 meta1 meta1 ) Debe llamarse rotdup. Hace ROTDUP con objetos meta.

12.1.2 COMBINANDO FUNCIONES.


DIRECCIN NOMBRE 296A7 top& 2973B 36FBA 36FCE 2963E pshtop& ROTUntop& roll2top& psh& DESCRIPCIN ( meta1 meta2 meta1&meta2 ) Une, concatena dos objetos meta ( meta1 meta2 meta2&meta1 ) Hace lo mismo que el comando anterior, pero antes hace psh ( meta1 meta2 meta3 meta2 meta3&meta1) Hace rot luego concatena. ( meta1 meta2 meta3 meta3 meta1&meta2) Une los objetos meta de los niveles tres y dos, luego hace SWAP ( meta1 meta2 meta3 meta1&meta3 meta2) Une los objetos meta de los niveles tres y uno.

12.1.3 OPERACIONES CON OBJETOS META


DIRECCIN NOMBRE 3592B SWAP#1+ 34431 34504 DESCRIPCIN ( # ob ob #+1 ) Hace SWAP luego suma #1 aka: SWP1+ DUP#1+PICK ( n..1 #n n..1 #n n ) Copia al nivel uno el objeto del nivel #n get1 ( ob meta meta ob ) Como SWAP, pero slo con objetos meta y un objeto. OVER#2+UNROL ( meta ob ob meta ) Como el comando anterior, pero el objeto debe estar en el nivel uno de la pila. psh1top& ( meta ob ob&meta )

36147 29693 28071 28085

pull pullrev

29821

psh1&

Inserta el objeto del nivel uno al objeto meta. ( meta&ob meta ob ) Extrae el ltimo elemento del objeto meta. ( ob&meta meta ob ) Extrae el primer elemento del objeto meta y devuelve el objeto meta en el nivel dos y el objeto en el nivel uno ( meta1 meta2 ob ob&meta1 meta2 ) Hace ROT luego inserta el objeto en meta uno.
Pgina 2 de 3

Autor: Canchari Gutirrez, Edmundo Comentarios: edcivilic@lycos.es

PROGRAMACIN EN SYSTEM-RPL

298C0 2F193 29754 406006 29972 36946 2F38E 2F38F

psh1&rev UobROT pullpsh1& addt0meta pshzer SWAPUnDROP xnsgeneral xsngeneral

( meta1 meta2 ob ob&meta1 meta2 ) Hace lo mismo que el comando anterior. ( ob meta1 meta2 meta1 meta2 ob ) Parecido al comando ROT pero con dos objetos meta y un objeto. ( meta1 meta2&ob ob&meta1 meta2 ) Extrae el ltimo elemento de meta2 y lo aade a meta1. ( meta1&ob meta2 meta1 meta2 ) Borra el ltimo elemento de meta1. ( meta #0 meta ) inserta el nmero cero bynario en el nivel ms alto. ( ob meta meta ) Borra el objeto. ( meta LAM3&meta&LAM1 ) concatena las variable locales con nombre al objeto meta. ( meta meta&LAM3&LAM1 ) concatena las variable locales con nombre al objeto meta.

12.1.4 OTRAS FUNCIONES.


DIRECCIN NOMBRE DESCRIPCIN

3760D 37685 33F006 2F356

SubMetaOb SubMetaOb1 submeta metatail

( meta #start #end meta' ) Extrae una porcin indicado por inicio y final del objeto meta. ( ob1..obi..obn #n #i #n #i ob1..obi #n #i ) ( meta #begin #end meta' ) Extrae una porcin del objeto meta. ( ob1..obn-i..obn #i #n+1 ob1..ob..obn-i #n-i obn-i+1..obn #i )

385006 39F006 3BF006 3C0006 198006 199006

metasplit

( meta #i meta1 meta2 )

Divide el objeto meta en dos, esta divisin se hace desde el elemento #i. metaEQUAL? ( meta2 meta1 meta2 meta1 flag ) Comprueba si dos objetos meta son iguales. EQUALPOSMETA ( Meta ob Meta ob #pos )
EQUALPOS2META

( Meta2 Meta1 ob Meta2 Meta1 ob #pos ) ( Meta Meta flag )


Evalua si los elemento del objeto meta son todos enteros. ( Meta Meta flag )

METAINT? METAPOSINT?

Autor: Canchari Gutirrez, Edmundo Comentarios: edcivilic@lycos.es

Pgina 3 de 3

Potrebbero piacerti anche