Hoja de ayuda con tareas comunes de varios tipos en distintos lenguajes de programación.
Consultas sobre secuencias de datos
En los siguientes ejemplos:
- seq es una variable de tipo S representando una secuencia de datos de tipo T
- v y w son dos datos del tipo T o de un tipo compatible con T
- P es un predicado de forma
F: (T)→{true,false}
exists / contains
“¿Existe el dato v en la secuencia?”
C++ |
bool exists= find (begin(seq), end(seq), v) != end(seq);
|
---|---|
Javascript | |
PHP | |
Python | |
match / find
“¿Qué dato en la secuencia cumple P?”
C++ |
Iterator m = find_if (begin(seq), end(seq), P); // m == end(seq) si ninguno
|
---|---|
Javascript | |
Python |
// (Python ≥ 2.6) next((x for x in seq if P(x)), None)
|
minimum (/maximum)
“Dada una clave F, ¿cuál es el mínimo en la secuencia acorde a F?”
C++ |
Iterator m = min_element (begin(seq), end(seq), F); // m apunta al mínimo
|
---|---|
Javascript | |
Mathemathica | |
PHP | |
Python |
value m = min (s, key=F)
|
fold / reduce
“Reducir (“left-fold”) la secuencia a un valor empezando con v0”
Ver: fold.
C++ |
result = accumulate (begin(seq), end(seq), v0, F);
|
---|---|
Javascript |
result = seq.reduce (v0, F); // seq es un Array
|
Mathematica |
fold_left F v0 seq; // F toma argumentos como tupla
|
PHP |
value = array_reduce (seq, v0, F); // F es un nombre o callback de PHP
|
Python |
result = reduce(seq, v0, F)
|
E/S de datos
En los siguientes ejemplos seq es una variable que denota una secuencia de datos y input es una variable que denota contenidos de un tipo de datos ingresado por teclado.
Leer secuencias de datos desde la entrada estándar
C++ |
// alternativa 1, usando un bucle while ( cin >> input ) { seq.push_back(input); } // input es de tipo T // alternativa 2, usando iteradores copy (istream_iterator<T>(cin), istream_iterator<T>(), back_inserter(seq));
|
---|---|
Javascript | |
Python | |
Escribir secuencias de datos a la salida estándar
C++ |
// alternativa 1, usando un bucle for (Iterator i= begin(seq); i != end(seq); ++i) { cout << *i; } // Iterator es el tipo de begin(seq) // alternativa 2, usando iteradores copy (begin(seq), end(seq), ostream_iterator<T>(cout, " ")); // nota: agrega un separador extra al final de la secuencia
|
---|---|
Javascript | |
Python | |
Leer argumentos entregados al programa
C/C++ |
int main (int argc, char **argv) { // argc = numero de argumentos // argv = puntero a cadenas de texto conteniendo cada argumento }
|
---|---|
Javascript | |
PHP | |
Python |
import sys sys.argv
|
¿Existe el archivo en "ruta_archivo"?
C++ (+POSIX) |
|
---|---|
Javascript | |
PHP |
if (file_exists(ruta_archivo) === true) { ... }
|
Python | |