Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Haskell
Wiki community
Recent changes
Random page
HaskellWiki
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Aprende Haskell en 10 minutos
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Tipos Simples == Hasta ahora no se a mencionado ni un solo [[type|tipo]]. Esto es por que Haskell hace inferencia de tipos. Generalmente no es necesario declararlos a menos que se as铆 se quiera. Si desea declarar tipos, se puede usar <hask>::</hask> para hacerlo. Prelude> 5 :: Int 5 Prelude> 5 :: Double 5.0 [[type|Tipos]] (y las [[class|clases]] de tipos, de las cuales se hablar谩 luego) siempre empiezan con una letra may煤scula. Las variables siempre empiezan con una letra min煤scula. Esta es una regla del lenguaje, no una [[Studly capitals||convenci贸n]]. Se puede preguntar a <tt>ghci</tt> que tipo se ha elegido para algo. Esto es 煤til por que generalmente no hay necesidad de declarar los tipos. Prelude> :t True True :: Bool Prelude> :t 'X' 'X' :: Char Prelude> :t "Hello, Haskell" "Hello, Haskell" :: [Char] (En caso de que lo haya notado, <hask>[Char]</hask> es otra forma de decir <hask>String</hask>. Vea la [[#Structured data|secci贸n sobre listas]] luego.) Algunas cosas se tornan m谩s interesantes con los n煤meros. Prelude> :t 42 42 :: (Num t) => t Prelude> :t 42.0 42.0 :: (Fractional t) => t Prelude> :t gcd 15 20 gcd 15 20 :: (Integral t) => t Estos tipos usan "Clases de tipo". Significan: * <hask>42</hask> se puede usar como cualquier tipo num茅rico. (Esta es la raz贸n por la que podemos declarar <hask>5</hask> como <hask>Int</hask> o como <hask>Double</hask>). * <hask>42.0</hask> puede ser cualquier tipo fraccionario, pero no un tipo integral. * <hask>gcd 15 20</hask> (que es una llamada de funci贸n) puede ser cualquier tipo integral, pero no un tipo fraccionario. Existen 5 tipos num茅ricos en el "preludio" de Haskell (la parte de la librer铆a que se obtiene sin tener que importar nada): * <hask>Int</hask> es un entero con al menos 30 bits de precisi贸n. * <hask>Integer</hask> es un entero con precisi贸n ilimitada. * <hask>Float</hask> es un numero de punto flotante con precisi贸n simple. * <hask>Double</hask> es un numero de punto flotante con precisi贸n doble. * <hask>Rational</hask> es un tipo fraccionario, sin error de redondeo. Los cinco son '''instancias''' de la clase de tipo <hask>Num</hask>. Los primeros dos son '''instancias''' de <hask>Integral</hask>, y los 煤ltimos tres son '''instancias''' de <hask>Fractional</hask>. Poni茅ndolo todo junto: Prelude> gcd 42 35 :: Int 7 Prelude> gcd 42 35 :: Double <interactive>:1:0: No instance for (Integral Double) El tipo final es un <hask>()</hask>, que se pronuncia "unidad". Solo tiene un valor, que se escribe tambi茅n como <hask>()</hask> y se pronuncia "unidad" de igual manera. Prelude> () () Prelude> :t () () :: () Se puede pensar en este tipo como en <tt>void</tt> de la familia de lenguajes de C. Se puede retornar <hask>()</hask> desde una acci贸n de I/O cuando no se quiere retornar nada en particular.
Summary:
Please note that all contributions to HaskellWiki are considered to be released under simple permissive license (see
HaskellWiki:Copyrights
for details). If you don't want your writing to be edited mercilessly and redistributed at will, then don't submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
DO NOT SUBMIT COPYRIGHTED WORK WITHOUT PERMISSION!
Cancel
Editing help
(opens in new window)
Toggle limited content width