Fundamentos del lenguaje
18 pasos en 6 series de Igor Pro.
El lenguaje de procedimientos de Igor es pequeño, y casi todo él existe para mover waves de un lado a otro. Este tour cubre lo que no puedes evitar: crear una wave y darle una escala, el puñado de tipos que Igor tiene, las funciones y sus declaraciones de retorno cargadas de flags, y el control de flujo que cierra con palabras clave escritas con todas sus letras en lugar de llaves.
Dos cosas sorprenden a quien llega desde otros lenguajes. No hay booleanos, así que cero es falso y todo lo demás es verdadero. Y una asignación de wave corre sobre todos los puntos a la vez, lo que significa que la mayoría de los bucles que estás por escribir son innecesarios. El bis es un kit de herramientas de waves que junta todo lo anterior.
Waves
- Crear una waveLa wave es el centro de Igor: un arreglo con nombre y numerado que conoce su propio eje.
- Las waves conocen su ejeEl número de punto p no es el valor x: SetScale es lo que ata la wave a unidades reales.
- Referencias a wavesUna referencia WAVE es la forma en que una función retiene una wave sin saber su nombre.
- LimpiarEl experimento se llena de waves de borrador; con las operaciones kill un script ordena tras de sí.
Variables y funciones
- Variables y cadenasIgor tiene pocos tipos y todos se declaran: números, texto y referencias a waves.
- FuncionesUna función declara lo que devuelve antes de su nombre, y cierra con End.
- Parámetros opcionales y por referenciaIgor no tiene sobrecarga; los parámetros opcionales y las salidas por referencia hacen ese trabajo.
Control de flujo
- Condicionesif/elseif/else, y el operador ternario para los casos chicos.
- Buclesfor y do-while, y el recordatorio de que una asignación de wave suele ganarles a ambos.
- switchUn switch numérico, donde un case sin break cae en el siguiente.
- strswitchLa misma forma para cadenas — y ojo: también cierra con endswitch.
Texto
- Trabajar con textoEl kit de cadenas de Igor es pequeño y cada pieza es una función.
- Listas en una cadenaLa lista de Igor es una cadena delimitada, y un puñado de funciones la trata como secuencia.
- ImprimirPrint para un vistazo rápido, printf cuando importa la forma de la salida.
- Waves de textoUna wave de texto guarda cadenas, y la mayoría de las operaciones numéricas no le aplican.
Dónde viven los datos
- GlobalesUna global vive en una carpeta de datos; NVAR y SVAR son las referencias que la alcanzan.
- Carpetas de datosEl experimento de Igor es un árbol; en carpetas de datos cada análisis mantiene aparte su trabajo.
Bis
- wave_toolkit.ipfLas pequeñas funciones utilitarias que todo proyecto de Igor termina escribiendo, en un archivo.