Para terminar la discusión de nunca acabar, lo que se podría agregar al catálogo de lenguajes de programación:, es categorizar al lenguaje:*Si se usaría laboralmente (es decir crear un proyecto nuevo HOY), eso encaja con java, php, pero no Pascal-FC*Si solo es un lenguaje educativo, eso encaja con Pascal-FC, haskell, pero no brainFuck*Si es un lenguaje para researching y calculo, eso encajaria con Fortran90 y C/C++, pero no php.*Si es un lenguaje historico y su contribucion: sin contribucion, no es historico, sino uno copión más.* Lenguaje tipo Glu eso encajaria con bash, python pero no ensamblador
Que lenguaje hay que aprender primero es que yo eh empezado por PHP,PYTHON? cual es el principal ?
import Control.Monadtype MyType = [String] -- simplente MyType equivale a [String] no crea un nuevo tipo simplemente le da otro nombre-- un documento podría ser una revista, o un librodata Documentos = Revistas String Int -- nombre, número | Libro String -- nombre deriving (Eq, Show) -- se deriva de las clases(Eq (permite usar (==) (/=))y show(lo pasa a string))-- Tipos de datos principales(se pueden crear mas tipos a partir data)-- En haskell no es necesario poner a :: Int, pero algunas situaciones lo requieren. En estas no, pero no pasa nadaa :: Inta = 1-- No hay variables en haskell (No se puede hacer a+=1)b :: Boolb = Trueb :: [Char] -- [Char] es equivalente Stringc = "Hola :P"main :: IO ()main = do x <- getContent -- obtiene una linea putStrLn x -- imprime una linea return () -- no es igual a un return de los lenguajes imperativos, introduce el valor en un tipo en este caso IO ()
-- Funciónfizzbuzz :: (Eq, Ord) => Int -> Stringfizzbuzz numero = | (mod numero 3 > 0) && (mod numero 5 > 0) = show numero | (mod numero 3 == 0) && (mod numero 5 == 0) = "FizzBuzz" | mod numero 3 == 0 = "Fizz" | otherwise = "Buzz"main = do mapM_ (putStrLn . fizzbuzz) [1..100] -- si no te gusta mapM_ usar forM (lo mismo pero coge los argumentos alrevez)