Aplicar un programa o comando a todos los elementos de un compuesto hasta agotar el compuesto
Página 1 de 1.
Aplicar un programa o comando a todos los elementos de un compuesto hasta agotar el compuesto
Aplicando un programa o comando (de dos argumentos) a todos los elementos de un compuesto hasta agotar el compuesto y retornar un solo objeto como resultado.
En User RPL, puedes aplicar un programa o comando (de dos argumentos) a todos los elementos de un compuesto hasta agotar el compuesto con el comando STREAM.
En System RPL, para evaluar un programa o comando (de dos argumentos) a todos los elementos de un compuesto hasta agotar el compuesto y retornar un solo objeto como resultado, puedes usar el siguiente NULLNAME
Ejecuta un programa o comando de la forma ( ob ob' -> ob'' ) repetidamente en los dos primeros elementos en una lista hasta que ésta queda agotada.
Por ejemplo:
210.
*************************************
Ejecuta un programa o comando de la forma ( ob ob' -> ob'' ) repetidamente en los dos últimos elementos en una lista hasta que ésta queda agotada.
- Los 2 NULLNAME anteriores producen el mismo resultado para operaciones conmutativas como %+, %*, %MAX y %MIN.
- Para operaciones que no son conmutativas pueden producir resultados diferentes.
- El NULLNAME StreamRevComp es más rápido que el NULLNAME StreamComp.
- Recuerda que esto no sólo funciona para listas. También funciona para todo tipo de objetos compuestos.
En User RPL, puedes aplicar un programa o comando (de dos argumentos) a todos los elementos de un compuesto hasta agotar el compuesto con el comando STREAM.
En System RPL, para evaluar un programa o comando (de dos argumentos) a todos los elementos de un compuesto hasta agotar el compuesto y retornar un solo objeto como resultado, puedes usar el siguiente NULLNAME
Ejecuta un programa o comando de la forma ( ob ob' -> ob'' ) repetidamente en los dos primeros elementos en una lista hasta que ésta queda agotada.
- Código:
* Ejecuta un programa o comando de la forma ( ob ob' -> ob'' ) repetidamente
* en los dos primeros elementos en una lista hasta que ésta queda agotada.
* Indica el resultado final.
NULLNAME StreamComp ( comp prog2a1 -> ob )
:: ( comp prog2a1 )
OVER ( comp prog2a1 comp )
LENCOMP ( comp prog2a1 #n )
DUP#1= ( comp prog2a1 #n flag )
case2drop
CARCOMP
( comp prog2a1 #n )
FLASHPTR 2LAMBIND
( comp )
>R ( )
'R ( ob1 )
1GETLAM ( ob1 #n )
ONE_DO (DO)
( ob )
RSWAP
'R ( ob obi+1 )
RSWAP
2GETEVAL ( ob' )
LOOP
( ob' )
ABND ( ob' )
;
Por ejemplo:
- Código:
{ 2. 5. 7. 3. }
' %*
StreamComp
210.
*************************************
Ejecuta un programa o comando de la forma ( ob ob' -> ob'' ) repetidamente en los dos últimos elementos en una lista hasta que ésta queda agotada.
- Código:
* Ejecuta un programa o comando de la forma ( ob ob' -> ob'' ) repetidamente
* en los dos últimos elementos en una lista hasta que ésta queda agotada.
* Indica el resultado final.
NULLNAME StreamRevComp ( comp prog2a1 -> ob )
:: ( comp prog2a1 )
1LAMBIND ( comp )
:: INNERCOMP ( ob1...obn #n )
DUP#1= ( ob1...obn #n flag )
caseDROP
( ob1...obn #n )
ONE_DO (DO)
( ob1...ob' ob'' )
1GETLAM ( ob1...ob' ob'' prog2a1 )
EVAL ( ob1...ob''' )
LOOP
( ob )
;
ABND ( ob )
;
- Los 2 NULLNAME anteriores producen el mismo resultado para operaciones conmutativas como %+, %*, %MAX y %MIN.
- Para operaciones que no son conmutativas pueden producir resultados diferentes.
- El NULLNAME StreamRevComp es más rápido que el NULLNAME StreamComp.
- Recuerda que esto no sólo funciona para listas. También funciona para todo tipo de objetos compuestos.
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.