Skip to content

Traducido howto/functional #1213

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Mar 18, 2021
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Traducido archivo howto/functional (56 de 206 - 27%)
  • Loading branch information
Kajachuan committed Feb 2, 2021
commit 93ffd63afaa69542a729b1627f25a4e2d26b3ab7
109 changes: 98 additions & 11 deletions howto/functional.po
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ msgstr ""
"Project-Id-Version: Python 3.8\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-05 12:54+0200\n"
"PO-Revision-Date: 2021-02-01 19:27-0300\n"
"PO-Revision-Date: 2021-02-02 15:00-0300\n"
"Language-Team: python-doc-es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
Expand Down Expand Up @@ -190,7 +190,7 @@ msgid ""
"execution for a second."
msgstr ""
"Algunos lenguajes son muy estrictos sobre la pureza y ni siquiera tienen "
"declaraciones de asignación como ``a=3`` o ``c = a + b``, pero es difícil "
"sentencias de asignación como ``a=3`` o ``c = a + b``, pero es difícil "
"evitar todos los efectos secundarios. Imprimir en la pantalla o escribir en "
"un archivo en disco son efectos secundarios, por ejemplo. Por ejemplo, en "
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aunque es la traducción exacta de la versión en inglés, me tomaría la libertad de evitar repetir "por ejemplo". El sentido del contenido no se altera y queda mucho mejor. ¿Qué te parece?

Suggested change
"un archivo en disco son efectos secundarios, por ejemplo. Por ejemplo, en "
"un archivo en disco son efectos secundarios, por ejemplo. En "

"Python una llamada a la función :func:`print` o :func:`time.sleep` retorna "
Expand Down Expand Up @@ -241,7 +241,7 @@ msgid ""
"advantages to the functional style:"
msgstr ""
"El diseño funcional puede parecer una restricción extraña bajo la cuál "
"trabajar. Por qué evitaría objetos y efectos secundarios? Hay ventajas "
"trabajar. ¿Por qué evitaría objetos y efectos secundarios? Hay ventajas "
"teóricas y prácticas para el estilo funcional:"

#: ../Doc/howto/functional.rst:93
Expand All @@ -258,7 +258,7 @@ msgstr "Componibilidad."

#: ../Doc/howto/functional.rst:96
msgid "Ease of debugging and testing."
msgstr "Fácil de depurar y probar."
msgstr "Facilidad de depurar y probar."

#: ../Doc/howto/functional.rst:100
msgid "Formal provability"
Expand Down Expand Up @@ -344,7 +344,7 @@ msgstr ""

#: ../Doc/howto/functional.rst:136
msgid "Modularity"
msgstr ""
msgstr "Modularidad"

#: ../Doc/howto/functional.rst:138
msgid ""
Expand All @@ -354,14 +354,20 @@ msgid ""
"thing than a large function that performs a complicated transformation. "
"Small functions are also easier to read and to check for errors."
msgstr ""
"Un beneficio más práctico de la programación funcional es que fuerza a "
"romper su problema en pequeñas piezas. Como resultado los programas son más "
"modulares. Es más fácil especificar y escribir una función pequeña que hace "
"una cosa que una función grande que realiza una transformación complicada. "
"Las funciones pequeñas también son más fáciles de leer y comprobar si hay "
"errores."

#: ../Doc/howto/functional.rst:146
msgid "Ease of debugging and testing"
msgstr ""
msgstr "Facilidad de depurar y probar"

#: ../Doc/howto/functional.rst:148
msgid "Testing and debugging a functional-style program is easier."
msgstr ""
msgstr "Probar y depurar un programa en estilo funcional es más fácil."

#: ../Doc/howto/functional.rst:150
msgid ""
Expand All @@ -371,6 +377,11 @@ msgid ""
"intermediate inputs and outputs to quickly isolate the function that's "
"responsible for a bug."
msgstr ""
"La depuración se simplifica porque las funciones generalmente son pequeñas y "
"claramente especificadas. Cuando un programa no funciona, cada función es un "
"punto de interfaz donde puede comprobar si los datos son correctos. Puede "
"ver las entradas y salidas intermedias para aislar rápidamente la función "
"que es responsable de un error."

#: ../Doc/howto/functional.rst:155
msgid ""
Expand All @@ -379,10 +390,15 @@ msgid ""
"before running a test; instead you only have to synthesize the right input "
"and then check that the output matches expectations."
msgstr ""
"Las pruebas son más fáciles porque cada función es un sujeto potencial para "
"una prueba unitaria. Las funciones no dependen de un estado del sistema que "
"necesite ser replicado antes de correr una prueba; en lugar de eso solo "
"tiene que sintetizar la entrada correcta y comprobar que la salida coincida "
"con las expectativas."

#: ../Doc/howto/functional.rst:162
msgid "Composability"
msgstr ""
msgstr "Componibilidad"

#: ../Doc/howto/functional.rst:164
msgid ""
Expand All @@ -394,23 +410,36 @@ msgid ""
"that takes a filename and returns its contents, can be applied to many "
"different situations."
msgstr ""
"Mientras trabaja en un programa en estilo funcional, escribirá un número de "
"funciones con diferentes entradas y salidas. Algunas de estas funciones "
"inevitablemente estarán especializadas en una aplicación en particular, pero "
"otras serán útiles en una amplia variedad de programas. Por ejemplo, una "
"función que recibe la ruta de un directorio y retorna todos los archivos XML "
"en el directorio, o una función que recibe el nombre de un archivo y retorna "
"su contenido, se puede aplicar a muchas situaciones diferentes."

#: ../Doc/howto/functional.rst:171
msgid ""
"Over time you'll form a personal library of utilities. Often you'll "
"assemble new programs by arranging existing functions in a new configuration "
"and writing a few functions specialized for the current task."
msgstr ""
"Con el tiempo formará una librería personal de utilidades. A menudo "
"ensamblará nuevos programas organizando funciones existentes en una nueva "
"configuración y escribiendo unas pocas funciones especializadas para la "
"tarea actual."

#: ../Doc/howto/functional.rst:179
msgid "Iterators"
msgstr ""
msgstr "Iteradores"

#: ../Doc/howto/functional.rst:181
msgid ""
"I'll start by looking at a Python language feature that's an important "
"foundation for writing functional-style programs: iterators."
msgstr ""
"Comenzaré viendo una característica del lenguaje Python que es una base "
"importante para escribir programas en estilo funcional: iteradores."

#: ../Doc/howto/functional.rst:184
msgid ""
Expand All @@ -422,6 +451,14 @@ msgid ""
"exception. Iterators don't have to be finite, though; it's perfectly "
"reasonable to write an iterator that produces an infinite stream of data."
msgstr ""
"Un iterador es un objeto que representa un flujo de datos; este objeto "
"retorna los datos de a un elemento a la vez. Un iterador de Python debe "
"soportar un método llamado :meth:`~iterator.__next__` que no recibe "
"argumentos y siempre retorna el siguiente elemento en el flujo. Si no hay "
"más elementos en el flujo, :meth:`~iterator.__next__` debe lanzar la "
"excepción :exc:`StopIteration`. Los iteradores no tienen que ser finitos; es "
"perfectamente razonable escribir un iterador que produce un flujo de datos "
"infinito."

#: ../Doc/howto/functional.rst:192
msgid ""
Expand All @@ -432,10 +469,16 @@ msgid ""
"lists and dictionaries. An object is called :term:`iterable` if you can get "
"an iterator for it."
msgstr ""
"La función integrada :func:`iter` recibe un objeto arbitrario e intenta "
"retornar un iterador que retornará los contenidos o elementos del objeto, "
"lanzando :exc:`TypeError` si el objeto no soporta iteración. Muchos tipos de "
"datos integrados de Python soportan iteración, siendo los más comunes las "
"listas y los diccionarios. Un objeto se llama :term:`iterable` si puede "
"obtener un iterador para él."

#: ../Doc/howto/functional.rst:199
msgid "You can experiment with the iteration interface manually:"
msgstr ""
msgstr "Puede experimentar con la interfaz de iteración manualmente:"

#: ../Doc/howto/functional.rst:217
msgid ""
Expand All @@ -444,18 +487,26 @@ msgid ""
"Y``, Y must be an iterator or some object for which :func:`iter` can create "
"an iterator. These two statements are equivalent::"
msgstr ""
"Python espera objetos iterables en muchos contextos diferentes, siendo el "
"más importante la sentencia :keyword:`for`. En la sentencia ``for X in Y``, "
"Y debe ser un iterador o algún objeto para el que :func:`iter` puede crear "
"un iterador. Estas dos sentencias son equivalentes::"

#: ../Doc/howto/functional.rst:229
msgid ""
"Iterators can be materialized as lists or tuples by using the :func:`list` "
"or :func:`tuple` constructor functions:"
msgstr ""
"Los iteradores se pueden materializar como listas o tuplas utilizando las "
"funciones constructoras :func:`list` o :func:`tuple`:"

#: ../Doc/howto/functional.rst:238
msgid ""
"Sequence unpacking also supports iterators: if you know an iterator will "
"return N elements, you can unpack them into an N-tuple:"
msgstr ""
"El desempaquetado de secuencias también soporta iteradores: si sabe que un "
"iterador retornará N elementos, puede desempaquetarlos en una N-tupla:"

#: ../Doc/howto/functional.rst:247
msgid ""
Expand All @@ -467,6 +518,14 @@ msgid ""
"func:`min` will never return, and if the element X never appears in the "
"stream, the ``\"in\"`` and ``\"not in\"`` operators won't return either."
msgstr ""
"Las funciones integradas como :func:`max` y :func:`min` pueden recibir un "
"solo iterador como argumento y retornarán el elemento más grande o más "
"pequeño. Los operadores ``\"in\"`` y ``\"not in\"`` también soportan "
"iteradores: ``X in iterator`` es verdadero si X se encuentra en el flujo que "
"retornó el iterador. Se encontrará con problemas obvios si el iterador es "
"infinito; :func:`max`, :func:`min` nunca retornarán, y si el elemento X "
"nunca aparece en el flujo, los operadores ``\"in\"`` and ``\"not in\"`` "
"tampoco retornarán."

#: ../Doc/howto/functional.rst:255
msgid ""
Expand All @@ -478,30 +537,46 @@ msgid ""
"need to do something different with the same stream, you'll have to create a "
"new iterator."
msgstr ""
"Note que solo puede ir hacia adelante en un iterador; no hay forma de "
"obtener el elemento anterior, reiniciar el iterador o hacer una copia de él. "
"Los objetos iteradores opcionalmente pueden proveer estas capacidades "
"adicionales, pero el protocolo del iterador solo especifica el método :meth:"
"`~iterator.__next__`. Por lo tanto las funciones pueden consumir toda la "
"salida del iterador, y si necesita hacer algo diferente con el mismo flujo, "
"tendrá que crear un nuevo iterador."

#: ../Doc/howto/functional.rst:265
msgid "Data Types That Support Iterators"
msgstr ""
msgstr "Tipos de datos que soportan iteradores"

#: ../Doc/howto/functional.rst:267
msgid ""
"We've already seen how lists and tuples support iterators. In fact, any "
"Python sequence type, such as strings, will automatically support creation "
"of an iterator."
msgstr ""
"Ya hemos visto cómo las listas y tuplas soportan iteradores. De hecho, "
"cualquier tipo de secuencia de Python, como cadenas de caracteres, "
"automáticamente soportará la creación de un iterador."

#: ../Doc/howto/functional.rst:271
msgid ""
"Calling :func:`iter` on a dictionary returns an iterator that will loop over "
"the dictionary's keys::"
msgstr ""
"Llamar a :func:`iter` en un diccionario retornará un iterador que recorrerá "
"sobre las claves del diccionario::"

#: ../Doc/howto/functional.rst:291
msgid ""
"Note that starting with Python 3.7, dictionary iteration order is guaranteed "
"to be the same as the insertion order. In earlier versions, the behaviour "
"was unspecified and could vary between implementations."
msgstr ""
"Note que a partir de Python 3.7, se garantiza que el orden de iteración del "
"diccionario es el mismo que el orden de inserción. En versiones anteriores, "
"el comportamiento no estaba especificado y podía variar entre "
"implementaciones."

#: ../Doc/howto/functional.rst:295
msgid ""
Expand All @@ -510,25 +585,37 @@ msgid ""
"iterate over values or key/value pairs, you can explicitly call the :meth:"
"`~dict.values` or :meth:`~dict.items` methods to get an appropriate iterator."
msgstr ""
"Aplicar :func:`iter` a un diccionario siempre recorre sobre las claves, pero "
"los diccionarios tienen métodos que retornan otros iteradores. Si quiere "
"iterar sobre valores o pares clave/valor, puede explícitamente llamar a los "
"métodos :meth:`~dict.values` o :meth:`~dict.items` para obtener un iterador "
"apropiado."

#: ../Doc/howto/functional.rst:301
msgid ""
"The :func:`dict` constructor can accept an iterator that returns a finite "
"stream of ``(key, value)`` tuples:"
msgstr ""
"El constructor :func:`dict` puede aceptar un iterador que retorna un flujo "
"finito de tuplas ``(key, value)``\\:"

#: ../Doc/howto/functional.rst:308
msgid ""
"Files also support iteration by calling the :meth:`~io.TextIOBase.readline` "
"method until there are no more lines in the file. This means you can read "
"each line of a file like this::"
msgstr ""
"Los archivos también soportan iteración llamando al método :meth:`~io."
"TextIOBase.readline` hasta que no haya más líneas en el archivo. Esto "
"significa que puede leer cada línea de un archivo de esta forma::"

#: ../Doc/howto/functional.rst:316
msgid ""
"Sets can take their contents from an iterable and let you iterate over the "
"set's elements::"
msgstr ""
"Los conjuntos pueden recibir sus contenidos de un iterable y le permiten "
"iterar sobre los elementos del conjunto::"

#: ../Doc/howto/functional.rst:326
msgid "Generator expressions and list comprehensions"
Expand Down