| | 12 | |
| | 13 | == Conexión con TOL == |
| | 14 | |
| | 15 | El paquete {{{tolLink}}} en R permite la conexión con TOL, para ello ha de existir una instalación de TOL compatible (TOL-GNU) cuyo directorio principal se encuentre apuntado por la variable de entorno {{{TOLGNU_ROOT}}}. Esta variable se creará durante el proceso de instalación de TOL. |
| | 16 | |
| | 17 | Durante el proceso de carga en R, el paquete intentará localizar la instalación de TOL, y en caso de encontrarla emitirá el siguiente mensaje: {{{TOL-GNU was correctly found.}}}. |
| | 18 | |
| | 19 | Una vez cargado el paquete {{{tolLink}}} en R disponemos de diferentes funciones para cargar o descargar la librería (.dll o .so) e inicializar o salir de TOL: |
| | 20 | * tolLoad |
| | 21 | * tolUnload |
| | 22 | * tolIsLoaded |
| | 23 | * tolInit |
| | 24 | * tolExit |
| | 25 | * tolReinit |
| | 26 | * tolIsInitialized |
| | 27 | |
| | 28 | Las diferentes llamadas en este paquete desencadenan las correspondientes llamadas para su adecuado funcionamiento, así pues, la llamada a {{{tolInit}}} basta para inicializar TOL, ya que la librería ser cargará automáticamente si no estuviera hecho: |
| | 29 | |
| | 30 | {{{ |
| | 31 | #!ruby |
| | 32 | tolInit() # llama a tolLoad() automáticamente |
| | 33 | }}} |
| | 34 | |
| | 35 | == Comunicación con TOL == |
| | 36 | |
| | 37 | Para la comunicación con TOL disponemos de diferentes funciones que nos permiten interaccionar con las variables y las funciones de TOL: |
| | 38 | * tolGet |
| | 39 | * tolRefer |
| | 40 | * tolExecute |
| | 41 | * tolDeclare |
| | 42 | |
| | 43 | Mientras {{{tolGet}}} nos permite obtener el valor de una variable en TOL, {{{tolRefer}}} nos permite referirnos a ella sin traer su valor hasta R. |
| | 44 | |
| | 45 | De modo similar {{{tolExecute}}} nos permite ejecutar una función en TOL, mientras que {{{tolDeclare}}} nos permite preparar la expresión para su ejecución sin hacerlo. |
| | 46 | |
| | 47 | Ejemplos: |
| | 48 | |
| | 49 | {{{ |
| | 50 | #!ruby |
| | 51 | # Obtener un valor de TOL |
| | 52 | tolGet("Time") #warning |
| | 53 | tolGet("Time", grammar="Text") |
| | 54 | }}} |
| | 55 | |
| | 56 | {{{ |
| | 57 | #!ruby |
| | 58 | # Llamar a una función de TOL |
| | 59 | tolExecute("Sin", 3) |
| | 60 | tolExecute("TextLength", "Texto") |
| | 61 | # Con varios argumentos |
| | 62 | tolExecute("TextSub", "Texto", 2, -2) |
| | 63 | }}} |
| | 64 | |
| | 65 | {{{ |
| | 66 | #!ruby |
| | 67 | # Encadenar llamadas |
| | 68 | tolExecute("Sin", tolExecute("Sin", 3)) # 2 llamadas |
| | 69 | tolExecute("Sin", tolDeclare("Sin", 3)) # 1 llamada |
| | 70 | }}} |
| | 71 | |
| | 72 | {{{ |
| | 73 | #!ruby |
| | 74 | # Usar variables de TOL |
| | 75 | tolExecute("Sin", tolGet("Pi")) # 2 llamadas |
| | 76 | tolExecute("Sin", tolRefer("Pi")) # 1 llamada |
| | 77 | }}} |
| | 78 | |
| | 79 | Las funciones en TOL pueden ser usadas como variables, para hacer esto en R usaremos {{{tolExecute}}} o {{{tolDeclare}}} con un sólo argumento: |
| | 80 | |
| | 81 | {{{ |
| | 82 | #!ruby |
| | 83 | # Usar un Code como variable |
| | 84 | tolExecute("CodeGrammar", tolDeclare("Sin")) #warning |
| | 85 | # Obtener el Code para una gramática dada |
| | 86 | tolExecute("Sin", grammar="Real") |
| | 87 | }}} |
| | 88 | |
| | 89 | Las funciones {{{tolExecute}}} y {{{tolDeclare}}} también pueden usarse con operadores: |
| | 90 | |
| | 91 | {{{ |
| | 92 | #!ruby |
| | 93 | # Usar operadores |
| | 94 | tolExecute("-", 2) # monario |
| | 95 | tolExecute("-", 2, 1) # binario |
| | 96 | tolExecute("-", 10, 2, 1) # binario |
| | 97 | }}} |
| | 98 | |
| | 99 | == Otras interacciones con TOL == |
| | 100 | |
| | 101 | Para la declaración de variables en TOL disponemos de dos funciones: |
| | 102 | * tolDefine |
| | 103 | * tolRelease |
| | 104 | |
| | 105 | Para la inclusión de archivos en TOL disponemos de: |
| | 106 | * tolInclude |
| | 107 | * tolExclude |
| | 108 | |
| | 109 | Para la carga de paquetes en TOL tenemos la función: |
| | 110 | * tolRequire |
| | 111 | |
| | 112 | La función {{{tolExist}}} nos permite determinar si una variable TOL existe antes de intentar obtenerla con {{{tolGet}}}. |
| | 113 | |
| | 114 | la función {{{tolStruct}}} nos permite crear listas estructuradas, compatibles con los conjuntos estructurados en TOL. |
| | 115 | |
| | 116 | Ejemplos: |
| | 117 | |
| | 118 | {{{ |
| | 119 | #!ruby |
| | 120 | ss <- tolStruct("@Real", 3); |
| | 121 | tolExecute("StructName", ss) # se obtiene el nombre de la estructura |
| | 122 | }}} |
| | 123 | |
| | 124 | {{{ |
| | 125 | #!ruby |
| | 126 | tolExist("test") # -> FALSE |
| | 127 | tolDefine("test", 8) |
| | 128 | tolExist("test") # -> TRUE |
| | 129 | tolGet("test") # -> 8 |
| | 130 | tolRelease("test") |
| | 131 | tolExist("test") # -> FALSE |
| | 132 | }}} |
| | 133 | |
| | 134 | |