Archives for posts tagged ‘Haskell’

3 consejos para aprender Haskell

Sobre aprender Haskell debo decir que 1) es difícil 2) cada vez es más fácil. Siendo las 10:34 AM del 14 de noviembre de 2011 tengo tres pequeños consejos que ofrecer para que te inicies en Haskell: Tweet

10 lenguajes de programación para afectar nuestra manera de pensar

Michael Fogus, co-autor de The Joy of Clojure, escribe un post magnífico de sobre los lenguajes de Perlis. ¿Por qué de Perlis? Por esta frase que se le atribuye: A language that doesn’t affect the way you think about programming is not worth knowing. Si no afecta nuestra manera de pensar, un lenguaje de programación [...]

El quine supremo

Un japonés escribió esto en 2009: # ruby l=92.chr;eval s="s=s.dump[r=1..-2].gsub(/("+l*4+"){4,}(?!\")/){|t|’\"+l*%d+\"’%(t .size/2)};5.times{s=s.dump[r]};puts\"# python\\nprint(\\\"# perl\\\\nprint(\\\\\\ \"# lua"+l*4+"nprint("+l*7+"\"(* ocaml *)"+l*8+"nprint_endline"+l*15+"\"– haskel l"+l*16+"nimport Data.List;import Data.Bits;import Data.Char;main=putStrLn("+l*31 +"\"/* C */"+l*32+"n#include<stdio .h>"+l*32+"nint main(void){char*s[501]={"+l*31+ "\"++intercalate"+l*31+"\","+l*31+"\"(c(tail(init(show("+l*31+"\"/* Java */"+l*32 +"npublic class QuineRelay{public static void main(String[]a){String[]s={"+l*31+" \"++intercalate"+l*31+"\","+l*31+"\"(c("+l*31+"\"brainfuck"+l*64+"n++++++++[>++++ < -]+++++++++>>++++++++++"+l*31+"\"++(concat(snd(mapAccumL h 2("+l*31+"\"110"+l*31 +"\"++g(length s)++"+l*31+"\"22111211100111112021111102011112120012"+l*31+"\"++co ncatMap("+l*32+"c->let d=ord c in if d&lt;11then"+l*31+"\"21002"+l*31+"\"else"+l*31+ "\"111"+l*31+"\"++g d++"+l*31+"\"22102"+l*31+"\")s++"+l*31+"\"2100211101012021122 2211211101000120211021120221102111000110120211202"+l*31+"\"))))))++"+l*31+"\","+l *63+"\""+l*64+"n"+l*63+"\"};int i=0;for(;i&lt;94;i++)System.out.print(s[i]);}}"+l*31 +"\")))))++"+l*31+"\",0};int [...]

La herramienta apropiada

The right tool for the job es una idea genial, una verdadera tabla comparativa de lenguajes de programación creada por los propios usuarios y en base a conceptos bastantes claros. De este modo, podemos ver opiniones de los usuarios en cuanto a que lenguaje considera mas elegante o cual disfruta mas… así como cual considera [...]

Pipes y sintaxis infija en Python

Después de aclarar que directamente desconocía la existencia del termino “infijo”, les cuento que Pipe se trata de un módulo muy simpático que permite utilizar los famosos pipes de Haskell en Python, reemplazando la sintaxis de prefijos por infijos. Ejemplo: >>> euler2 = fib() | where(lambda x: x % 2 == 0) | take_while(lambda x: [...]

Haskell y filosofía en Oxford

La Universidad de Oxford a partir de ahora ofrecerá una nueva carrera que bueno, hace que se me caiga la baba: “Ciencias de la Computacion y Filosofia“. La duración será de 3 a 4 años y el motivo, si es que hace falta que alguien explicite un motivo para algo tan importante y fascinante es, [...]

La Ley de Wadler

Durante el diseño de cualquier lenguaje de programación, el tiempo invertido en discutir una característica en esta lista es proporcional a dos elevado a la posición que ocupa en ella: 0 Semántica 1 Sintaxis 2 Sintaxis léxica 3 Sintaxis léxica de los comentarios Esto quiere decir que la sintaxis de los comentarios genera tormentosas discusiones [...]

Aplicaciones para la Mac App Store en Haskell

La manera tradicional de hacer una aplicación híbrida entre Haskell y Objective-C que pueda ser aceptada en la Mac App Store, es decir, una aplicación completamente Cocoa/Xcode/Etc, es usar a Obj-C como lenguaje principal y llamar al código de Haskell como una bilbioteca. Pero mediante un hack muy pero muy pero muy ingenioso, es posible [...]

Haskell -> Python -> Ruby -> Haskell

Un quine es un programa cuya salida es su código fuente. Llamado así en honor al filósofo W. V. Quine. Cuando un quine entrega el código de otro lenguaje es un quine de segundo orden. Y así sucesivamente con la condición de regresar al código original. Lo que presento a continuación es un quine de [...]

Siete lenguajes en siete semanas

Aprender un nuevo lenguaje de programación puede ser un verdadero placer. En cambio, hacerlo de forma sistemática puede no ser igual. Esto requiere disciplina, planeación y en ocasiones, un sacrificio que por distintas circunstancias no podemos hacer. Al punto: Hay un libro que promete llevarte de la manos para aprender siete lenguajes en siete semanas. [...]