2009-02-07 20:20:49 +01:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2009-12-31 02:18:35 +01:00
< html xmlns = "http://www.w3.org/1999/xhtml" >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" / >
2011-11-08 20:54:10 +01:00
< meta http-equiv = "Content-Style-Type" content = "text/css" / >
2009-12-31 02:18:35 +01:00
< meta name = "generator" content = "pandoc" / >
2011-01-15 17:22:41 +01:00
< title > < / title >
2013-01-05 08:01:54 +01:00
< style type = "text/css" > code { white-space : pre ; } < / style >
2012-01-25 20:29:42 +01:00
< style type = "text/css" >
2015-03-28 20:13:27 +01:00
div.sourceCode { overflow-x: auto; }
2012-01-25 20:29:42 +01:00
table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode {
2011-12-28 03:08:06 +01:00
margin: 0; padding: 0; vertical-align: baseline; border: none; }
2013-01-05 04:48:02 +01:00
table.sourceCode { width: 100%; line-height: 100%; }
2011-12-28 03:08:06 +01:00
td.lineNumbers { text-align: right; padding-right: 4px; padding-left: 4px; color: #aaaaaa; border-right: 1px solid #aaaaaa; }
2010-07-16 08:00:58 +02:00
td.sourceCode { padding-left: 5px; }
2015-05-27 02:11:28 +02:00
code > span.kw { color: #007020; font-weight: bold; } /* Keyword */
code > span.dt { color: #902000; } /* DataType */
code > span.dv { color: #40a070; } /* DecVal */
code > span.bn { color: #40a070; } /* BaseN */
code > span.fl { color: #40a070; } /* Float */
code > span.ch { color: #4070a0; } /* Char */
code > span.st { color: #4070a0; } /* String */
code > span.co { color: #60a0b0; font-style: italic; } /* Comment */
code > span.ot { color: #007020; } /* Other */
code > span.al { color: #ff0000; font-weight: bold; } /* Alert */
code > span.fu { color: #06287e; } /* Function */
code > span.er { color: #ff0000; font-weight: bold; } /* Error */
code > span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
code > span.cn { color: #880000; } /* Constant */
code > span.sc { color: #4070a0; } /* SpecialChar */
code > span.vs { color: #4070a0; } /* VerbatimString */
code > span.ss { color: #bb6688; } /* SpecialString */
code > span.im { } /* Import */
code > span.va { color: #19177c; } /* Variable */
code > span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
code > span.op { color: #666666; } /* Operator */
code > span.bu { } /* BuiltIn */
code > span.ex { } /* Extension */
code > span.pp { color: #bc7a00; } /* Preprocessor */
code > span.at { color: #7d9029; } /* Attribute */
code > span.do { color: #ba2121; font-style: italic; } /* Documentation */
code > span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
code > span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
2012-01-25 20:29:42 +01:00
< / style >
2009-12-31 02:18:35 +01:00
< / head >
< body >
2013-09-01 18:13:31 +02:00
< h1 id = "lhs-test" > lhs test< / h1 >
2011-02-05 05:37:58 +01:00
< p > < code > unsplit< / code > is an arrow that takes a pair of values and combines them to return a single value:< / p >
2015-03-28 18:10:33 +01:00
< div class = "sourceCode" > < pre class = "sourceCode literate haskell" > < code class = "sourceCode haskell" > < span class = "ot" > unsplit ::< / span > (< span class = "dt" > Arrow< / span > a) < span class = "ot" > => < / span > (b < span class = "ot" > -> < / span > c < span class = "ot" > -> < / span > d) < span class = "ot" > -> < / span > a (b, c) d
2013-07-24 05:31:49 +02:00
unsplit < span class = "fu" > =< / span > arr < span class = "fu" > .< / span > uncurry
2015-03-28 18:10:33 +01:00
< span class = "co" > -- arr (\op (x,y) -> x `op` y)< / span > < / code > < / pre > < / div >
2011-02-05 05:37:58 +01:00
< p > < code > (***)< / code > combines two arrows into a new arrow by running the two arrows on a pair of values (one arrow on the first item of the pair and one arrow on the second item of the pair).< / p >
2011-12-28 03:08:06 +01:00
< pre > < code > f *** g = first f > > > second g< / code > < / pre >
2011-02-05 05:37:58 +01:00
< p > Block quote:< / p >
< blockquote >
2011-02-05 08:25:28 +01:00
< p > foo bar< / p >
< / blockquote >
2009-12-31 02:18:35 +01:00
< / body >
< / html >