{"id":7226,"date":"2022-08-07T06:00:48","date_gmt":"2022-08-07T04:00:48","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=7226"},"modified":"2022-08-10T19:06:32","modified_gmt":"2022-08-10T17:06:32","slug":"curso-de-introduccion-a-la-programacion-con-haskell-y-python","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/curso-de-introduccion-a-la-programacion-con-haskell-y-python\/","title":{"rendered":"Curso de introducci\u00f3n a la programaci\u00f3n con Haskell y Python"},"content":{"rendered":"<p>Ma\u00f1ana comenzar\u00e1 en <a href=\"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/\">Exercitium<\/a> un curso pr\u00e1ctico de introducci\u00f3n a la programaci\u00f3n con Haskell y Python.<\/p>\n<p>Diariamente, se publicar\u00e1 un ejercicio con sus soluciones en Haskell y en Python. El orden de los ejercicios se corresponde con el de los temas del curso de <a href=\"https:\/\/jaalonso.github.io\/materias\/PFconHaskell\/temas.html\">Programaci\u00f3n funcional con Haskell<\/a>. Adem\u00e1s, en cada ejercicio se comentar\u00e1n las diferencias entre ambos lenguajes y se ir\u00e1 extendiendo la <a href=\"https:\/\/github.com\/jaalonso\/Exercitium-Python\/blob\/main\/Equivalencia_Haskell_Python.org\">tabla de equivalencia entre Haskell y Python<\/a>.<\/p>\n<p>Las soluciones de los ejercicios con Haskell se ir\u00e1n a\u00f1adiendo al repositorio <a href=\"https:\/\/github.com\/jaalonso\/Exercitium\">Exercitium<\/a> em GitHub. Est\u00e1n como un proyecto con <a href=\"https:\/\/github.com\/jaalonso\/Exercitium\">Stack<\/a> (en concreto, la LTS-18.24) de forma que se puede verificar los ejemplos con<\/p>\n<pre class=\"example\">stack test\n<\/pre>\n<p>Las soluciones de los ejercicios con Python se ir\u00e1n a\u00f1adiendo al repositorio <a href=\"https:\/\/github.com\/jaalonso\/Exercitium-Python\">Exercitium-Python<\/a> em GitHub. Est\u00e1n como un proyecto con <a href=\"https:\/\/python-poetry.org\/\">Poetry<\/a> que usa la versi\u00f3n 3.10 de Python. Tambi\u00e9n se pueden verificar los ejemplos con<\/p>\n<pre class=\"example\">poetry run pytest\n<\/pre>\n<p>He intentado escribir soluciones en Python parecidas a la de Haskell, conservando el estilo funcional. De todas formas, en los comentarios se pueden escribir definiciones alternativas en cualquiera de los lenguajes.<\/p>\n<p>Los libros de Haskell en los que me he basado son<\/p>\n<ul class=\"org-ul\">\n<li><a href=\"https:\/\/www.iro.umontreal.ca\/~lapalme\/Algorithms-functional.html\">Algorithms: A functional programming approach<\/a> de F. Rabhi y G. Lapalme.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books?id=b7Q_zQEACAAJ&amp;lpg=PP1&amp;hl=es&amp;pg=PP1#v=onepage&amp;q&amp;f=false\">Algorithm design with Haskell<\/a> de E. Bird y J. Gibbons.<\/li>\n<li><a href=\"http:\/\/goo.gl\/L7m8\">An introduction to functional programming systems using Haskell<\/a> de A.J.T. Davie.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books?id=gKvwPtvsSjsC&amp;lpg=PP1&amp;hl=es&amp;pg=PP1#v=onepage&amp;q&amp;f=false\">An introduction to functional programming through lambda calculus<\/a> de G. Michaelson.<\/li>\n<li><a href=\"http:\/\/aprendehaskell.es\">\u00a1Aprende Haskell por el bien de todos!<\/a> de M. Lipova\u010da.<\/li>\n<li><a href=\"https:\/\/www.renci.org\/wp-content\/pub\/tutorials\/BeautifulCode.pdf\">Beautiful code, compelling evidence (Functional programming for information visualization)<\/a> de J.R. Heard.<\/li>\n<li><a href=\"https:\/\/www.oreilly.com\/library\/view\/beginning-haskell-a\/9781430262503\/\">Beginning Haskell (A project based approach)<\/a>. ~ A. Serrano.<\/li>\n<li><a href=\"https:\/\/raw.githubusercontent.com\/jwbuurlage\/category-theory-programmers\/master\/doc\/categories_for_programmers.pdf\">Categories and Haskell<\/a> de J.W. Buurlage.<\/li>\n<li><a href=\"https:\/\/repository.eafit.edu.co\/bitstream\/handle\/10784\/7251\/Juan_VillaIsaza_2014.pdf?sequence=2&amp;isAllowed=y\">Category theory applied to functional programming<\/a> J.P. Villa.<\/li>\n<li><a href=\"https:\/\/citeseerx.ist.psu.edu\/viewdoc\/download?doi=10.1.1.467.1441&amp;rep=rep1&amp;type=pdf\">Computational semantics and type theory<\/a> de J. van Eijck.<\/li>\n<li><a href=\"https:\/\/citeseerx.ist.psu.edu\/viewdoc\/download?doi=10.1.1.217.4186&amp;rep=rep1&amp;type=pdf\">Computational semantics with functional programming<\/a> de J. van Eijck y C. Unger.<\/li>\n<li><a href=\"https:\/\/www.oreilly.com\/library\/view\/developing-web-applications\/9781449336868\/\">Developing web applications with Haskell and Yesod<\/a> de M. Snoyman.<\/li>\n<li><a href=\"https:\/\/link.springer.com\/book\/10.1007\/1-84628-598-4\">Discrete mathematics using a computer<\/a> de J. O&#8217;Donnell, C. Hall y R. Page.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books?id=DKPazgEACAAJ&amp;dq=domain-specific+languages+of+mathematics&amp;hl=es&amp;sa=X&amp;redir_esc=y\">Domain-specific languages of Mathematics<\/a> de P. Jansson, C. Ionescu y J.P. Bernardy.<\/li>\n<li><a href=\"https:\/\/raw.githubusercontent.com\/jaalonso\/I1M-Ejercicios-Haskell\/main\/libro\/Ejercicios-Haskell.pdf\">Ejercicios de programaci\u00f3n funcional con Haskell<\/a> de J.A. Alonso y M.J. Hidalgo.<\/li>\n<li><a href=\"https:\/\/raw.githubusercontent.com\/jaalonso\/Examenes_de_PF_con_Haskell\/master\/Libro\/Examenes_de_PF_con_Haskell.pdf\">Ex\u00e1menes de programaci\u00f3n funcional con Haskell<\/a> de J.A. Alonso y als.<\/li>\n<li><a href=\"https:\/\/theses.gla.ac.uk\/1629\/1\/1996kingphd.pdf\">Functional programming and graph algorithms<\/a> de D.J. King.<\/li>\n<li><a href=\"https:\/\/www.oreilly.com\/library\/view\/get-programming-with\/9781617293764\/\">Get programming with Haskell<\/a> de W. Kurt.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books?id=2plGDwAAQBAJ&amp;lpg=PP2&amp;ots=VOwYsBkeni&amp;dq=%22Haskell%20cookbook%22%20Sajanikar&amp;hl=es&amp;pg=PP1#v=onepage&amp;q&amp;f=false\">Haskell cookbook<\/a> de Y. Sajanikar.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books?id=R0_lAwAAQBAJ&amp;lpg=PP1&amp;hl=es&amp;pg=PP1#v=onepage&amp;q&amp;f=false\">Haskell data analysis cookbook<\/a> de N. Shukla.<\/li>\n<li><a href=\"https:\/\/www.oreilly.com\/library\/view\/haskell-design-patterns\/9781783988723\/\">Haskell design patterns<\/a> de R. Lemmer.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books\/about\/Haskell_Financial_Data_Modeling_and_Pred.html?id=9Qy8AQAAQBAJ&amp;redir_esc=y\">Haskell financial data modeling and predictive analytics<\/a> de P. Ryzhov.<\/li>\n<li><a href=\"https:\/\/www.oreilly.com\/library\/view\/haskell-high-performance\/9781786464217\/\">Haskell high performance programming<\/a> de S. Thomasson.<\/li>\n<li><a href=\"https:\/\/goalkicker.com\/HaskellBook\/HaskellNotesForProfessionals.pdf\">Haskell (Notes for professionals)<\/a>.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books?id=5FaXDAEACAAJ&amp;dq=inauthor:%22Julie+Moronuki%22&amp;hl=es&amp;sa=X&amp;redir_esc=y\">Haskell programming from first principles<\/a> de C. Allen y J. Moronuki.<\/li>\n<li><a href=\"https:\/\/link.springer.com\/book\/10.1007\/978-1-4842-4507-1\">Haskell quick syntax reference<\/a> de S.L. Nita y M. Mihailescu.<\/li>\n<li><a href=\"https:\/\/leanpub.com\/haskell-cookbook\/\">Haskell tutorial and cookbook<\/a> de M. Watson.<\/li>\n<li><a href=\"http:\/\/www.haskellcraft.com\/craft3e\/Home.html\">Haskell (The craft of functional programming)<\/a> de S. Thompson.<\/li>\n<li><a href=\"http:\/\/goo.gl\/Ie82\">Introducci\u00f3n a la programaci\u00f3n funcional con Haskell<\/a> de R. Bird.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books?id=IyFaEAAAQBAJ&amp;lpg=PP1&amp;hl=es&amp;pg=PP1#v=onepage&amp;q&amp;f=false\">Introduction to computation Haskell, logic and automata<\/a> de D. Sannella, M. Fourman, H. Peng y P. Wadler.<\/li>\n<li><a href=\"https:\/\/mybinder.org\/v2\/gh\/jamesdbrock\/learn-you-a-haskell-notebook\/master?urlpath=lab\/tree\/learn_you_a_haskell\/00-preface.ipynb\">Learn you a Haskell for great good!<\/a> de M. Lipovaca y J. Brock.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books\/about\/Learning_Haskell_Data_Analysis.html?id=9vPXsgEACAAJ&amp;redir_esc=y\">Learning Haskell data analysis<\/a> de J. Church.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books\/about\/Parallel_and_Concurrent_Programming_in_H.html?id=_x0dmwEACAAJ&amp;redir_esc=y\">Parallel and concurrent programming in Haskell<\/a>. S. Marlow.<\/li>\n<li><a href=\"http:\/\/bit.ly\/1tUwB7n\">Pearls of functional algorithm design<\/a> de R. Bird.<\/li>\n<li><a href=\"https:\/\/www.cs.us.es\/~jalonso\/publicaciones\/Piensa_en_Haskell.pdf\">Piensa en Haskell<\/a> de J.A. Alonso y M.J. Hidalgo.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books?id=dIOVDwAAQBAJ&amp;printsec=frontcover&amp;hl=es#v=onepage&amp;q&amp;f=false\">Practical Haskell (A real World guide to programming)<\/a> de A. Serrano.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books?id=jI15DwAAQBAJ&amp;lpg=PP1&amp;hl=es&amp;pg=PP1#v=onepage&amp;q&amp;f=false\">Practical Web development with Haskell<\/a> de E. Putrady.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books?id=ydo1DwAAQBAJ&amp;lpg=PP1&amp;hl=es&amp;pg=PP1#v=onepage&amp;q&amp;f=false\">Practical concurrent Haskell (with big data applications)<\/a> de S.L. Nita y M. Mihailescu.<\/li>\n<li><a href=\"http:\/\/bit.ly\/2pQofC2\">Programming in Haskell (2nd edition)<\/a> de G. Hutton.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books?id=SxPzSTcTalAC&amp;lpg=PP1&amp;hl=es&amp;pg=PP1#v=onepage&amp;q&amp;f=false\">Purely functional data structures<\/a> de D. Okasaki.<\/li>\n<li><a href=\"http:\/\/book.realworldhaskell.org\/read\">Real world Haskell<\/a> de B. O&#8217;Sullivan, J. Goerzen y D. Stewart.<\/li>\n<li><a href=\"https:\/\/www.cs.us.es\/~jalonso\/cursos\/i1m\/temas\/2019-20-I1M-temas-PF.pdf\">Temas de programaci\u00f3n funcional<\/a> de J.A. Alonso.<\/li>\n<li><a href=\"https:\/\/raw.githubusercontent.com\/BartoszMilewski\/Publications\/master\/TheDaoOfFP\/DaoFP.pdf\">The Dao of functional programming<\/a> de B. Milewski.<\/li>\n<li><a href=\"http:\/\/www.cs.yale.edu\/homes\/hudak\/Papers\/HSoM.pdf\">The Haskell school of music (from signals to symphonies)<\/a> de P. Hudak.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books\/about\/The_Haskell_Road_to_Logic_Maths_and_Prog.html?id=5Xk-AQAAIAAJ&amp;redir_esc=y\">The Haskell road to logic, maths and programming<\/a> de K. Doets y J van Eijck.<\/li>\n<li><a href=\"http:\/\/bit.ly\/1tUv4hG\">Thinking functionally with Haskell<\/a> de R. Bird.<\/li>\n<li><a href=\"https:\/\/thinkingwithtypes.com\/\">Thinking with types<\/a> de S. Maguire.<\/li>\n<li><a href=\"http:\/\/www.umiacs.umd.edu\/~hal\/docs\/daume02yaht.pdf\">Yet another Haskell tutorial<\/a> de Hal Daume III et al.<\/li>\n<\/ul>\n<p>Los libros de Python en los que me he basado son<\/p>\n<ul class=\"org-ul\">\n<li><a href=\"https:\/\/books.google.es\/books?id=UY-wDwAAQBAJ&amp;lpg=PR1&amp;dq=Advanced%20guide%20to%20Python%203%20programming&amp;hl=es&amp;pg=PR1#v=onepage&amp;q&amp;f=false\">Advanced guide to Python 3 programming<\/a> de J. Hunt.<\/li>\n<li><a href=\"https:\/\/eecs.wsu.edu\/~schneidj\/PyBook\/swan.pdf\">Algorithmic problem solving with Python<\/a> de J.B. Schneider, S.L. Broschat y J. Dahmen.<\/li>\n<li><a href=\"https:\/\/argentinaenpython.com\/quiero-aprender-python\/aprenda-a-pensar-como-un-programador-con-python.pdf\">Aprenda a pensar como un programador con Python<\/a> de A. Downey, J. Elkner y C. Meyers.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books?id=78fSswEACAAJ&amp;dq=inauthor:%22J.+J.+Merelo%22&amp;hl=es&amp;sa=X&amp;redir_esc=y\">Aprende a programar en Python como si estuvieras en el siglo XXI<\/a> de J.J. Merelo.<\/li>\n<li><a href=\"https:\/\/www.oreilly.com\/library\/view\/artificial-intelligence-with\/9781786464392\/\">Artificial intelligence with Python<\/a> de P. Joshi.<\/li>\n<li><a href=\"https:\/\/automatetheboringstuff.com\/\">Automate the boring stuff with Python<\/a> de A. Sweigart.<\/li>\n<li><a href=\"https:\/\/link.springer.com\/book\/10.1007\/978-3-030-20290-3\">A beginners guide to Python 3 programming<\/a> de J. Hunt.<\/li>\n<li><a href=\"https:\/\/www.taylorfrancis.com\/books\/mono\/10.1201\/b22264\/concise-introduction-programming-python-mark-johnson\">A concise introduction to programming in Python<\/a> de M.J. Johnson.<\/li>\n<li><a href=\"https:\/\/www.taylorfrancis.com\/books\/mono\/10.1201\/b15269\/functional-start-computing-python-ted-herman\">A functional start to computing with Python<\/a> de T. Herman.<\/li>\n<li><a href=\"https:\/\/hplgit.github.io\/primer.html\/doc\/pub\/half\/book.pdf\">A primer on scientific programming with Python<\/a> de H.P. Langtangen.<\/li>\n<li><a href=\"https:\/\/pimbook.org\/\">A programmer\u2019s introduction to mathematics<\/a> de J. Kun.<\/li>\n<li><a href=\"http:\/\/hplgit.github.io\/bumpy\/doc\/pub\/sphinx-basics\/index.html\">A very basic introduction to scientific Python programming<\/a> de H.P. Langtangen.<\/li>\n<li><a href=\"https:\/\/morioh.com\/p\/716d582d2cb5\">Basic cheat sheet for Python<\/a> de Swigartpdf<\/li>\n<li><a href=\"https:\/\/link.springer.com\/book\/10.1007\/978-1-4302-0634-7\">Beginning Python (From novice to professional)<\/a> de M.L. Hetland.<\/li>\n<li><a href=\"https:\/\/www.oreilly.com\/library\/view\/clean-python-elegant\/9781484248782\/\">Clean Python (Elegant coding in Python)<\/a> de S. Kapil.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books?id=Wa1uzQEACAAJ&amp;lpg=PP1&amp;hl=es&amp;pg=PP1#v=onepage&amp;q&amp;f=false\">Competitive programming in Python<\/a> de C. Durr y J.L. Vie.<\/li>\n<li><a href=\"https:\/\/belglas.files.wordpress.com\/2018\/03\/cpwp.pdf\">Computational physics with Python<\/a> de E. Ayars.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books?id=kFWIDwAAQBAJ&amp;lpg=PP1&amp;hl=es&amp;pg=PP1#v=onepage&amp;q&amp;f=false\">Computational quantum mechanics<\/a> de J. Izaac y J. Wang.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books?id=YBKSDwAAQBAJ&amp;lpg=PP1&amp;hl=es&amp;pg=PP1#v=onepage&amp;q&amp;f=false\">Data science from scratch (First principles with Python)<\/a> de J. Grus.<\/li>\n<li><a href=\"https:\/\/www.wiley.com\/en-us\/Data+Structures+and+Algorithms+in+Python-p-9781118290279\">Data structures and algorithms in Python<\/a> de M.T. Goodrich, R. Tamassia y M.H.Goldwasser.<\/li>\n<li><a href=\"https:\/\/www.oreilly.com\/library\/view\/doing-math-with\/9781457189999\/\">Doing math with Python<\/a> de A. Saha.<\/li>\n<li><a href=\"https:\/\/www.oreilly.com\/library\/view\/effective-computation-in\/9781491901564\/\">Effective computation in physics<\/a> de A. Scopatz y K.D. Huff.<\/li>\n<li><a href=\"https:\/\/www.exabyteinformatica.com\/uoc\/Inteligencia_artificial\/Inteligencia_artificial_avanzada\/Inteligencia_artificial_avanzada_(Modulo_2).pdf\">El lenguaje Python<\/a> de D. Masip.<\/li>\n<li><a href=\"https:\/\/www.oreilly.com\/library\/view\/fluent-python-2nd\/9781492056348\/\">Fluent Python<\/a> de L. Ramalho.<\/li>\n<li><a href=\"https:\/\/www.packtpub.com\/product\/functional-python-programming-second-edition\/9781788627061\">Functional Python programming<\/a> de D.F. Lott.<\/li>\n<li><a href=\"https:\/\/www.oreilly.com\/library\/view\/functional-programming-in\/9781492048633\/\">Functional programming in Python<\/a> de D. Mertz.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books\/about\/Fundamentals_of_Python.html?id=QDOeQAAACAAJ&amp;redir_esc=y\">Fundamentals of Python (From first programs through data structures)<\/a> de K.A. Lambert.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books\/about\/Hacking_Secret_Ciphers_with_Python.html?id=OMZFmwEACAAJ&amp;redir_esc=y\">Hacking secret ciphers with Python<\/a> de A. Sweigart.<\/li>\n<li><a href=\"http:\/\/repositori.uji.es\/xmlui\/bitstream\/handle\/10234\/102653\/s93.pdf?sequence=1&amp;isAllowed=y\">Introducci\u00f3n a la programaci\u00f3n con Python 3<\/a> de A. Marzal. I. Gracia y P. Garc\u00eda.<\/li>\n<li><a href=\"https:\/\/www.unilim.fr\/pages_perso\/olivier.prot\/irem2009\/stageiufm09.pdf\">Introduction a l&#8217;algorithmique avec Python<\/a> de P. Olivier.<\/li>\n<li><a href=\"https:\/\/github.com\/fangohr\/introduction-to-python-for-computational-science-and-engineering\">Introduction to Python for computational science and engineering<\/a> de H. ~ Fangohr.<\/li>\n<li><a href=\"https:\/\/www.kevinsheppard.com\/files\/teaching\/python\/notes\/python_introduction_2019.pdf\">Introduction to Python for econometrics, statistics and data analysis<\/a>. ~ Sheppard-14.pdf<\/li>\n<li><a href=\"https:\/\/books.google.es\/books?id=d6t-DwAAQBAJ&amp;lpg=PA1&amp;hl=es&amp;pg=PA1#v=onepage&amp;q&amp;f=false\">Introduction to Python for science and engineering<\/a> de D.J. Pine.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books\/about\/Introduction_to_Python.html?id=9eJbMQAACAAJ&amp;redir_esc=y\">Introduction to Python for scientists and engineers<\/a> de S. Nagar.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books?id=KabKDAAAQBAJ&amp;lpg=PP1&amp;hl=es&amp;pg=PP1#v=onepage&amp;q&amp;f=false\">Introduction to computation and programming using Python<\/a> de J.V. Guttag.<\/li>\n<li><a href=\"https:\/\/www.taylorfrancis.com\/books\/mono\/10.1201\/9781315120850\/introduction-recursive-programming-manuel-rubio-s%C3%A1nchez\">Introduction to recursive programming<\/a> de M. Rubio.<\/li>\n<li><a href=\"https:\/\/openlibra.com\/es\/book\/learning-to-program-using-python\">Learning to program using Python<\/a> de C. Jackson.<\/li>\n<li><a href=\"https:\/\/pdxscholar.library.pdx.edu\/cgi\/viewcontent.cgi?article=1034&amp;context=pdxopen\">Lectures on mathematical computing with Python<\/a> de J. Gopalakrishnan.<\/li>\n<li><a href=\"https:\/\/www.oreilly.com\/library\/view\/mastering-python\/9781785289729\/\">Mastering Python<\/a> de R. van Hattem.<\/li>\n<li><a href=\"https:\/\/runestone.academy\/ns\/books\/published\/pythonds\/index.html\">Problem solving with algorithms and data structures using Python<\/a> de B. Miller y D. Ranum.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books?id=ikY94PbFICMC&amp;source=gbs_book_other_versions_r&amp;redir_esc=y\">Programmation en Python pour les math\u00e9matiques<\/a> de A. Casamayou P. Chauvin y G. Connan.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books\/about\/Programming_and_Mathematical_Thinking.html?id=nbynoAEACAAJ&amp;redir_esc=y\">Programming and mathematical thinking<\/a> de A.M. Stavely.<\/li>\n<li><a href=\"https:\/\/link.springer.com\/book\/10.1007\/978-3-030-16877-3\">Programming for computations (A gentle introduction to numerical simulations with Python 3.6)<\/a> de S. Linge y H.P. Langtangen.<\/li>\n<li><a href=\"https:\/\/link.springer.com\/book\/10.1007\/978-981-10-3277-6\">Programming with Python<\/a> de T.R. Padmanabhan.<\/li>\n<li><a href=\"https:\/\/link.springer.com\/book\/10.1007\/978-1-4302-1633-9\">Python 3 for absolute beginners<\/a> de T. Hall y J-P Stacey.<\/li>\n<li><a href=\"https:\/\/www.oreilly.com\/library\/view\/python-algorithms-mastering\/9781484200551\/\">Python algorithms (Mastering basic algorithms in the Python language)<\/a> de M.L. Lie.<\/li>\n<li><a href=\"https:\/\/link.springer.com\/book\/10.1007\/978-1-4842-2505-9\">Python descriptors<\/a> de J. Zimmerman.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books?id=aJQILlLxRmAC&amp;lpg=PP1&amp;dq=inauthor%3A%22John%20M.%20Zelle%22&amp;hl=es&amp;pg=PP1#v=onepage&amp;q&amp;f=false\">Python programming (An introduction to computer science)<\/a> de J. Zelle.<\/li>\n<li><a href=\"http:\/\/www.astro.up.pt\/~sousasag\/Python_For_Astronomers\/PythonScientific-simple.pdf\">Python scientific lecture notes<\/a> de V. Haenel, E. Gouillart y G. Varoquaux..<\/li>\n<li><a href=\"https:\/\/hal.inria.fr\/hal-01206546\/document\">Scipy Lecture Notes (One document to learn numerics, science, and data with Python)<\/a> de G. Varoquaux et als.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books?id=VNozDwAAQBAJ&amp;lpg=PP1&amp;dq=inauthor%3A%22Julien%20Danjou%22&amp;hl=es&amp;pg=PP1#v=onepage&amp;q&amp;f=false\">Serious Python<\/a> de J. Danjou.<\/li>\n<li><a href=\"https:\/\/books.google.es\/books?id=UIZfBgAAQBAJ&amp;lpg=PR2&amp;hl=es&amp;pg=PR2#v=onepage&amp;q&amp;f=false\">The Python workbook (A brief introduction with exercises and solutions)<\/a> de B. Stephenson.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Ma\u00f1ana comenzar\u00e1 en Exercitium un curso pr\u00e1ctico de introducci\u00f3n a la programaci\u00f3n con Haskell y Python. Diariamente, se publicar\u00e1 un ejercicio con sus soluciones en Haskell y en Python. El orden de los ejercicios se corresponde con el de los temas del curso de Programaci\u00f3n funcional con Haskell. Adem\u00e1s, en cada ejercicio se comentar\u00e1n las&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"footnotes":"","_jetpack_memberships_contains_paid_content":false},"categories":[581],"tags":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/7226"}],"collection":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/comments?post=7226"}],"version-history":[{"count":10,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/7226\/revisions"}],"predecessor-version":[{"id":7279,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/7226\/revisions\/7279"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=7226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=7226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=7226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}