0% found this document useful (0 votes)
237 views

Haskell - Haskell Cheat Sheet

This document provides a cheat sheet on the basics of Haskell, including data types, functions, conditionals, lists, and other core concepts. It explains how to declare functions, work with lists through operations like appending and accessing elements, and use list comprehensions to generate new lists. Examples are given for many language features to illustrate their usage and syntax.

Uploaded by

Anass J
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
237 views

Haskell - Haskell Cheat Sheet

This document provides a cheat sheet on the basics of Haskell, including data types, functions, conditionals, lists, and other core concepts. It explains how to declare functions, work with lists through operations like appending and accessing elements, and use list comprehensions to generate new lists. Examples are given for many language features to illustrate their usage and syntax.

Uploaded by

Anass J
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

Haskell Cheat Sheet maneu.fr | c-maneu.developpez.

com

BASICS functionName::inputType1[->inputTypeN]- Using lists


>outputType An empty list is designed by []
Comments Declare function with pattern matching (sample) In (h:q), h stands for the first element of the list, and q
All comments start with two hyphens intToChar 1 = "One"
-- This is a comment in the code for the rest. With (f:s:t:q), you can directly gets
intToChar 2 = "Two"
the first (f), second (s) and third (t) element of the
Data Types Declare function with guards
list.

λ
Haskell uses various data types, all of them starts by a intToChar x
You can add the element e to the list l with e:l
capital letter: | x==1 = "One"
Int: Integer number with fixed precision | x==2 = "Two"
Predefined operations
Integer: Integer number with virtually no limits
Type redefinition Append two lists list1++list2
Float: Floating number
Type NewTypeName = TypeValue Return element n list!!n
Bool: Boolean. Takes two values: True or False.
Sample : Type String = [Char] Get the first/last element head/last list
Char: Character. Any character in the code is
Get the sum of all list elements sum list
placed between quotes (').
LISTS Get the product of all list elements product list
String: Strings (In fact, a list of Chars).
Tuples
Tuples are designed to group data (multiple types USE HASKELL
Conditionals
Identity: ==, non identity /= allowed). Interpreter
Comparatives (type must be a subclass of Ord) : (El1,El2,[Elx…]) Hugs : Available for Windows, Linux, FreeBSD and
>, >=, <, <= Sample: ("James",41,1.85) MacOs X. http://www.haskell.org/hugs/
if conditional then truePart else falsePart
Basic list creation Compiler
Scripts types Lists are between [], elements are separated by GHC (Glasgow Haskell Compiler) : Available for
Classic (.hs) the code is more important comma. Windows, Linux.
Litterals (.lhs) lines with code starts with >, lines with Sample : [1,2,3,4,5] [“John”,“Paul”,“Andy”] http://www.haskell.org/ghc/download.html
comments don’t start by two hyphens. You can create lists by populate them with a range:
[1..5]=[1,2,3,4,5] [1..]=[1,2,3,4,5,6,… Editors
Hugs basics (infinite) - Any good text editor :)
Load file :load filename - Visual Studio Haskell.
reload file :reload Comprehension lists http://www.haskell.org/visualhaskell
Launch file editor with current file :edit = creating liste using arithmetic operations or
Get information about a function :info command functions. [ body | generator ]. Documentation
Samples : - Haskell API search : http://www.haskell.org/hoogle/
FUNCTIONS [2*a | a <- [1..3]] = [2,4,6] - Haskell reference : ftp://ftp-
[x*y | x <- [1..3], y <- [3..6] ] developpez.com/c-
Declare a new function [x | x <- [1,5,12,3,23,11,7,2], x>10] maneu/langages/haskell/haskell-
Start with explicit type declaration (optional) [(x,y) | x <- [1,3,5], y <- [2,4,6], reference.zip
x<y]
Christopher MANEU
Creative Commons Licence BY-NC-ND

You might also like