Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
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
2 changes: 1 addition & 1 deletion book/src/chap04.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ end
Las sentencias más internas, +forward+ y +turn+ tienen doble sangría para mostrar que están dentro del bucle +for+, que a su vez está dentro de la definición de función.
(((indentación)))

Dentro de la función, +t+ se refiere a la misma tortuga +🐢+, entonces +turn(t, -90)+ tiene el mismo efecto que +turn(🐢, -90)+. En ese caso, ¿por qué no llamar al parámetro +🐢+? La razón es que +t+ puede ser cualquier tortuga, no solo +🐢+, por lo que podríamos crear una segunda tortuga y pasarla como argumento a +cuadrado+:
Dentro de la función, +t+ se refiere a la misma tortuga +🐢+, entonces +turn(t, -90)+ tiene el mismo efecto que +turn(🐢, -90)+. En ese caso, ¿Por qué no llamar al parámetro +🐢+? La razón es que +t+ puede ser cualquier tortuga, no solo +🐢+, por lo que podríamos crear una segunda tortuga y pasarla como argumento a +cuadrado+:

[source,julia]
----
Expand Down
6 changes: 3 additions & 3 deletions book/src/chap06.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ Por ejemplo, suponga que desea encontrar la distancia entre dos puntos dados por
\end{equation}
++++

El primer paso es considerar qué aspecto tendría la función distancia en Julia. En otras palabras, ¿cuáles son las entradas (parámetros) y cuál es la salida (valor de retorno)?
El primer paso es considerar qué aspecto tendría la función distancia en Julia. En otras palabras, ¿Cuáles son las entradas (parámetros) y cuál es la salida (valor de retorno)?

En este caso las entradas son los dos puntos, que se pueden representar usando cuatro números. El valor devuelto es la distancia, que es un número de punto flotante.

Expand Down Expand Up @@ -415,7 +415,7 @@ De hecho, ya se está dando este voto de confianza cuando se usan funciones inte

Lo mismo ocurre cuando el usuario llama a una de sus propias funciones. Por ejemplo, en <<boolean_functions>>, se escribe una función llamada +esdivisible+ que determina si un número es divisible por otro. Una vez que se confirme que esta función es correcta —al examinar y probar el código—, se puede usar la función sin mirar nuevamente el cuerpo.

Lo mismo aplica a los programas recursivos. Cuando llegue a la llamada recursiva, en lugar de seguir el flujo de ejecución, debe suponer que la llamada recursiva funciona (devuelve el resultado correcto) y luego preguntarse: "Suponiendo que pueda encontrar el factorial de latexmath:[n-1], ¿se puede calcular el factorial de latexmath:[n]?" Está claro que es posible, multiplicando por latexmath:[n].
Lo mismo aplica a los programas recursivos. Cuando llegue a la llamada recursiva, en lugar de seguir el flujo de ejecución, debe suponer que la llamada recursiva funciona (devuelve el resultado correcto) y luego preguntarse: "Suponiendo que pueda encontrar el factorial de latexmath:[n-1], ¿Se puede calcular el factorial de latexmath:[n]?" Está claro que es posible, multiplicando por latexmath:[n].

Por supuesto, es un poco extraño suponer que la función funciona correctamente cuando no ha terminado de escribirla, ¡pero por eso se llama voto de confianza!

Expand Down Expand Up @@ -468,7 +468,7 @@ Stacktrace:
[1] fact(::Float64) at ./REPL[3]:2
----

Parece una recursión infinita. ¿Como es esto posible? La función tiene un caso base (cuando +n == 0+). Pero si +n+ no es un número entero, es posible _perderse_ el caso base y hacer recursión para siempre.
Parece una recursión infinita. ¿Cómo es esto posible? La función tiene un caso base (cuando +n == 0+). Pero si +n+ no es un número entero, es posible _perderse_ el caso base y hacer recursión para siempre.
(((recursión infinita)))

En la primera llamada recursiva, el valor de +n+ es +0.5+. En la siguiente, es +-0.5+. A partir de ahí, se vuelve más pequeño (más negativo), pero nunca será +0+.
Expand Down
2 changes: 1 addition & 1 deletion book/src/chap08.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ Una cadena vacía no contiene caracteres y tiene una longitud de 0, pero aparte

==== Ejercicio 8-3

Continuando este ejemplo, ¿qué cree que significa +str[:]+? Pruebe y verá.
Continuando este ejemplo, ¿Qué cree que significa +str[:]+? Pruebe y verá.

=== Las Cadenas son Inmutables

Expand Down
4 changes: 2 additions & 2 deletions book/src/chap09.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -358,7 +358,7 @@ Ahora, lo que vi ese día fue muy interesante. Noté que los últimos 4 dígitos

Un kilómetro después, los últimos 5 números fueron palindrómicos. Por ejemplo, podría haberse leído 3-6-5-4-5-6. Un kilómetro después de eso, los 4 números del medio eran palindrómicos. ¿Y... estás listo para esto? ¡Un kilómetro después, los 6 eran palindrómicos!

La pregunta es, ¿qué número estaba en el odómetro cuando miré por primera vez?
La pregunta es, ¿Qué número estaba en el odómetro cuando miré por primera vez?
____

Escriba un programa de Julia que pruebe todos los números de seis dígitos e imprima cualquier número que satisfaga estos requisitos.
Expand All @@ -372,7 +372,7 @@ Aquí hay otro puzzle de _Car Talk_ que puede resolver con una búsqueda (https:
____
Hace poco visité a mi madre y nos dimos cuenta de que los dos dígitos que componen mi edad cuando se invertían daban como resultado su edad. Por ejemplo, si tiene 73 años, yo tengo 37. Nos preguntamos con qué frecuencia esto ha sucedido a lo largo de los años, pero nos desviamos de otros temas y nunca obtuvimos una respuesta.

Cuando llegué a casa descubrí que los dígitos de nuestras edades han sido reversibles seis veces hasta ahora. También descubrí que si teníamos suerte, volvería a suceder en unos años, y si tenemos mucha suerte, sucedería una vez más después de eso. En otras palabras, habría sucedido 8 veces. Entonces la pregunta es, ¿cuántos años tengo ahora?
Cuando llegué a casa descubrí que los dígitos de nuestras edades han sido reversibles seis veces hasta ahora. También descubrí que si teníamos suerte, volvería a suceder en unos años, y si tenemos mucha suerte, sucedería una vez más después de eso. En otras palabras, habría sucedido 8 veces. Entonces la pregunta es, ¿Cuántos años tengo ahora?
____

Escriba un programa de Julia que busque soluciones para este puzzle.
Expand Down
4 changes: 2 additions & 2 deletions book/src/chap10.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -1013,8 +1013,8 @@ Escriba una función llamada +repetido+ que tome un arreglo y devuelva +true+ si
Este ejercicio se relaciona con la llamada paradoja del cumpleaños, sobre la cual puede leer en https://es.wikipedia.org/wiki/Paradoja_del_cumplea%C3%B1os
(((Paradoja del cumpleaños)))

Si hay 23 estudiantes en su clase, ¿cuáles son las posibilidades de que dos de ustedes tengan el mismo cumpleaños? Puede estimar esta probabilidad generando muestras aleatorias de 23 cumpleaños y buscando coincidencias.
(((rand)))((("función", "Base", "rand", véase "rand")))
Si hay 23 estudiantes en su clase, ¿Cuáles son las posibilidades de que dos de ustedes tengan el mismo cumpleaños? Puede estimar esta probabilidad generando muestras aleatorias de 23 cumpleaños y buscando coincidencias.
(((rand)))((("función", "Base", "rand", see="rand")))

[TIP]
====
Expand Down
2 changes: 1 addition & 1 deletion book/src/chap11.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ s 1
Dado un diccionario +d+ y una clave +k+, es fácil encontrar el valor correspondiente +v = d[k]+. Esta operación se llama _búsqueda_.
(((lookup)))

Pero, ¿qué pasa si se tiene +v+ y se quiere encontrar +k+? Existen dos problemas: primeramente, puede haber más de una clave que apunta al valor +v+. Dependiendo de lo que se quiera, es posible que se pueda elegir una de estas claves, o que se tenga que hacer una matriz que las contenga a todas. En segundo lugar, no hay una sintaxis simple para hacer una búsqueda inversa; solo se debe buscar.
Pero, ¿Qué pasa si se tiene +v+ y se quiere encontrar +k+? Existen dos problemas: primeramente, puede haber más de una clave que apunta al valor +v+. Dependiendo de lo que se quiera, es posible que se pueda elegir una de estas claves, o que se tenga que hacer una matriz que las contenga a todas. En segundo lugar, no hay una sintaxis simple para hacer una búsqueda inversa; solo se debe buscar.
(((reverse lookup)))

A continuación se muestra una función que toma un valor y que devuelve la primera clave que apunta a ese valor:
Expand Down
2 changes: 1 addition & 1 deletion book/src/chap12.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -462,7 +462,7 @@ Aquí las tuplas se muestran usando la sintaxis de Julia para tener un esquema m
Hasta ahora, el capítulo se ha centrado en los arreglos de tuplas, pero casi todos los ejemplos que se han visto también funcionan con arreglos de arreglos, tuplas de tuplas y tuplas de arreglos. Para evitar enumerar todas las posibles combinaciones, a veces es más fácil hablar sobre secuencias de secuencias.
(((secuencias de secuencias)))

En muchos contextos, los diferentes tipos de secuencias (cadenas, arreglos y tuplas) se pueden usar indistintamente. Entonces, ¿cómo elegir uno u otro?
En muchos contextos, los diferentes tipos de secuencias (cadenas, arreglos y tuplas) se pueden usar indistintamente. Entonces, ¿Cómo elegir uno u otro?
(((cadena)))(((arreglo)))(((tupla)))

Para comenzar con lo mas obvio, las cadenas son más limitadas que las demás secuencias, porque los elementos deben ser caracteres. Además son inmutables. Si se necesita poder cambiar los caracteres en una cadena (en vez de crear una nueva), puede que lo mas adecuado sea elegir un arreglo de caracteres.
Expand Down
2 changes: 1 addition & 1 deletion book/src/chap13.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Modifique el programa del ejercicio anterior para imprimir las 20 palabras más
[[ex13-4]]
==== Ejercicio 13-4

Modifique el programa anterior para que lea una lista de palabras y luego imprima todas las palabras del libro que no estén en la lista de palabras. ¿Cuántos de ellos son errores tipográficos? ¿Cuántos de ellos son palabras comunes que deberían estar en la lista de palabras? ¿ Cuántos de ellos son términos realmente macabros?
Modifique el programa anterior para que lea una lista de palabras y luego imprima todas las palabras del libro que no estén en la lista de palabras. ¿Cuántos de ellos son errores tipográficos? ¿Cuántos de ellos son palabras comunes que deberían estar en la lista de palabras? ¿Cuántos de ellos son términos realmente macabros?

=== Números aleatorios

Expand Down
2 changes: 1 addition & 1 deletion book/src/chap18.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ J♥

Para los tipos integrados, existen operadores relacionales (+<+, +>+, +==+, etc.) que comparan valores y determinan cuándo uno es mayor, menor o igual a otro. Para los tipos definidos por el usuario, se puede sustituir el comportamiento de estos operadores si se proporciona un método llamado: +<+.

El orden correcto de los naipes no es obvio. Por ejemplo, ¿cuál es mejor, el 3 de Tréboles o el 2 de Diamantes? Uno tiene un valor mayor, pero el otro tiene un palo mayor. Para hacer que los naipes sean comparables, se debe decidir qué es más importante: valor o palo.
El orden correcto de los naipes no es obvio. Por ejemplo, ¿Cuál es mejor, el 3 de Tréboles o el 2 de Diamantes? Uno tiene un valor mayor, pero el otro tiene un palo mayor. Para hacer que los naipes sean comparables, se debe decidir qué es más importante: valor o palo.

La respuesta puede depender del tipo de juego, pero para simplificar las cosas, se establece la elección arbitraria de que el palo es más importante, por lo que todas los tréboles superan a todos los diamantes, y así sucesivamente.

Expand Down