<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 
<head>
<title>Cheat sheet - nyelvtani segédlet/összefoglaló</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="pandoc" />
<link rel="shortcut icon" href="icon.ico" />
<script src="common_en.js" charset="utf-8" type="text/javascript"></script> 
<link rel="stylesheet" href="common.css" type="text/css" />
</head>
<body onload="javascript:resetForms(); javascript:slidy_init();">
<div><h1 class="cover">Cheat sheet - nyelvtani segédlet/összefoglaló</h1>
<div id="info"></div>

</div>
<div class="sourceCode" id="cb1"><pre class="sourceCode haskell"><code class="sourceCode haskell"><a class="sourceLine" id="cb1-1" data-line-number="1"><span class="co">-- Egysoros komment</span></a>
<a class="sourceLine" id="cb1-2" data-line-number="2"><span class="co">{- Többsoros </span></a>
<a class="sourceLine" id="cb1-3" data-line-number="3"><span class="co">   komment. -}</span></a>
<a class="sourceLine" id="cb1-4" data-line-number="4"></a>
<a class="sourceLine" id="cb1-5" data-line-number="5"><span class="kw">import</span> <span class="dt">Data.List</span> <span class="co">-- Modul importálása</span></a>
<a class="sourceLine" id="cb1-6" data-line-number="6"><span class="kw">import</span> <span class="dt">Prelude</span> <span class="kw">hiding</span> (map, <span class="dt">Maybe</span>(..)) <span class="co">-- definíció eltakarása</span></a>
<a class="sourceLine" id="cb1-7" data-line-number="7"></a>
<a class="sourceLine" id="cb1-8" data-line-number="8"><span class="ot">n ::</span> <span class="dt">Int</span></a>
<a class="sourceLine" id="cb1-9" data-line-number="9">n <span class="fu">=</span> <span class="dv">3</span> <span class="co">-- egész szám</span></a>
<a class="sourceLine" id="cb1-10" data-line-number="10"></a>
<a class="sourceLine" id="cb1-11" data-line-number="11"><span class="ot">c ::</span> <span class="dt">Char</span></a>
<a class="sourceLine" id="cb1-12" data-line-number="12">c <span class="fu">=</span> <span class="ch">&#39;X&#39;</span> <span class="co">-- karakter</span></a>
<a class="sourceLine" id="cb1-13" data-line-number="13"></a>
<a class="sourceLine" id="cb1-14" data-line-number="14"><span class="ot">str ::</span> <span class="dt">String</span></a>
<a class="sourceLine" id="cb1-15" data-line-number="15">str <span class="fu">=</span> <span class="st">&quot;szoveg&quot;</span> <span class="co">-- String</span></a>
<a class="sourceLine" id="cb1-16" data-line-number="16"></a>
<a class="sourceLine" id="cb1-17" data-line-number="17"><span class="co">-- Nevek és operátorok használata</span></a>
<a class="sourceLine" id="cb1-18" data-line-number="18">a1 <span class="fu">=</span> n <span class="ot">`mod`</span> <span class="dv">2</span></a>
<a class="sourceLine" id="cb1-19" data-line-number="19">a2 <span class="fu">=</span> mod n <span class="dv">2</span></a>
<a class="sourceLine" id="cb1-20" data-line-number="20">a3 <span class="fu">=</span> n <span class="fu">+</span> <span class="dv">2</span></a>
<a class="sourceLine" id="cb1-21" data-line-number="21">a4 <span class="fu">=</span> (<span class="fu">+</span>) n <span class="dv">2</span></a>
<a class="sourceLine" id="cb1-22" data-line-number="22"></a>
<a class="sourceLine" id="cb1-23" data-line-number="23"><span class="co">-- Zárójelek használata</span></a>
<a class="sourceLine" id="cb1-24" data-line-number="24">x <span class="fu">=</span> succ (succ <span class="dv">2</span>)</a>
<a class="sourceLine" id="cb1-25" data-line-number="25">y <span class="fu">=</span> succ (<span class="dv">1</span> <span class="fu">+</span> <span class="dv">2</span>)</a>
<a class="sourceLine" id="cb1-26" data-line-number="26"></a>
<a class="sourceLine" id="cb1-27" data-line-number="27"><span class="co">-- Mintaillesztés</span></a>
<a class="sourceLine" id="cb1-28" data-line-number="28"><span class="ot">fib ::</span> <span class="dt">Int</span> <span class="ot">-&gt;</span> <span class="dt">Int</span> <span class="co">-- Típus szignatúra</span></a>
<a class="sourceLine" id="cb1-29" data-line-number="29">fib <span class="dv">1</span> <span class="fu">=</span> <span class="dv">1</span></a>
<a class="sourceLine" id="cb1-30" data-line-number="30">fib <span class="dv">2</span> <span class="fu">=</span> <span class="dv">2</span></a>
<a class="sourceLine" id="cb1-31" data-line-number="31">fib x <span class="fu">=</span> prev <span class="fu">+</span> prev2</a>
<a class="sourceLine" id="cb1-32" data-line-number="32"> <span class="kw">where</span> prev <span class="fu">=</span> fib (x <span class="fu">-</span> <span class="dv">1</span>) <span class="co">-- lokális definíciók, rekurzió</span></a>
<a class="sourceLine" id="cb1-33" data-line-number="33">       prev2 <span class="fu">=</span> fib (x <span class="fu">-</span> <span class="dv">2</span>)</a>
<a class="sourceLine" id="cb1-34" data-line-number="34"></a>
<a class="sourceLine" id="cb1-35" data-line-number="35"><span class="ot">swap ::</span> (a,b) <span class="ot">-&gt;</span> (b,a) <span class="co">-- Polimorf függvénytípus</span></a>
<a class="sourceLine" id="cb1-36" data-line-number="36">swap (x,y) <span class="fu">=</span> (y,x) <span class="co">-- Párok mintaillesztése és készítése</span></a>
<a class="sourceLine" id="cb1-37" data-line-number="37"></a>
<a class="sourceLine" id="cb1-38" data-line-number="38"><span class="ot">comb ::</span> [<span class="dt">Int</span>] <span class="ot">-&gt;</span> [<span class="dt">Int</span>]</a>
<a class="sourceLine" id="cb1-39" data-line-number="39">comb [] <span class="fu">=</span> [] <span class="co">-- Üres lista</span></a>
<a class="sourceLine" id="cb1-40" data-line-number="40">comb [x] <span class="fu">=</span> [x] <span class="co">-- Egyelemű lista</span></a>
<a class="sourceLine" id="cb1-41" data-line-number="41"><span class="co">-- Legalább 2 elemű lista, rekurzív függvényhívás</span></a>
<a class="sourceLine" id="cb1-42" data-line-number="42">comb (first<span class="fu">:</span>next<span class="fu">:</span>rest) <span class="fu">=</span> (first <span class="fu">+</span> next) <span class="fu">:</span> comb rest </a>
<a class="sourceLine" id="cb1-43" data-line-number="43"></a>
<a class="sourceLine" id="cb1-44" data-line-number="44">min<span class="ot"> ::</span> <span class="dt">Ord</span> a <span class="ot">=&gt;</span> a <span class="ot">-&gt;</span> a <span class="ot">-&gt;</span> a <span class="co">-- Típusmegszorítás</span></a>
<a class="sourceLine" id="cb1-45" data-line-number="45">min a b <span class="fu">|</span> a <span class="fu">&lt;</span> b     <span class="fu">=</span> a <span class="co">-- Őrfeltétel</span></a>
<a class="sourceLine" id="cb1-46" data-line-number="46">        <span class="fu">|</span> otherwise <span class="fu">=</span> b <span class="co">-- Őrfeltétel</span></a>
<a class="sourceLine" id="cb1-47" data-line-number="47"></a>
<a class="sourceLine" id="cb1-48" data-line-number="48"><span class="ot">map&#39; ::</span> (a <span class="ot">-&gt;</span> b) <span class="ot">-&gt;</span> [a] <span class="ot">-&gt;</span> [b] <span class="co">-- Magasabbrendű fv.</span></a>
<a class="sourceLine" id="cb1-49" data-line-number="49">map&#39; _ []     <span class="fu">=</span> []</a>
<a class="sourceLine" id="cb1-50" data-line-number="50">map&#39; f (x<span class="fu">:</span>xs) <span class="fu">=</span> f x <span class="fu">:</span> map&#39; f xs</a>
<a class="sourceLine" id="cb1-51" data-line-number="51">		</a>
<a class="sourceLine" id="cb1-52" data-line-number="52"><span class="co">-- Függvénykompozíció, lambda, dollár jelölés</span></a>
<a class="sourceLine" id="cb1-53" data-line-number="53">foo <span class="fu">=</span> fib <span class="fu">.</span> (\a <span class="ot">-&gt;</span> a <span class="fu">+</span> <span class="dv">1</span>) <span class="fu">$</span> <span class="dv">10</span></a>
<a class="sourceLine" id="cb1-54" data-line-number="54"></a>
<a class="sourceLine" id="cb1-55" data-line-number="55"><span class="co">-- Operátor szelet és intervallum kifejezések (pont-pont)</span></a>
<a class="sourceLine" id="cb1-56" data-line-number="56">evens <span class="fu">=</span> map (<span class="fu">*</span><span class="dv">2</span>) [<span class="dv">1</span><span class="fu">..</span><span class="dv">1000</span>]</a>
<a class="sourceLine" id="cb1-57" data-line-number="57">positives <span class="fu">=</span> [<span class="dv">1</span><span class="fu">..</span>]</a>
<a class="sourceLine" id="cb1-58" data-line-number="58">evens&#39; <span class="fu">=</span> [<span class="dv">0</span>,<span class="dv">2</span><span class="fu">..</span>]</a>
<a class="sourceLine" id="cb1-59" data-line-number="59">backward <span class="fu">=</span> [<span class="dv">10</span>,<span class="dv">9</span><span class="fu">..</span><span class="dv">1</span>]</a>
<a class="sourceLine" id="cb1-60" data-line-number="60"></a>
<a class="sourceLine" id="cb1-61" data-line-number="61"><span class="kw">data</span> <span class="dt">Point</span> <span class="fu">=</span> <span class="dt">P</span> <span class="dt">Double</span> <span class="dt">Double</span> <span class="co">-- Adattípus definíciója</span></a>
<a class="sourceLine" id="cb1-62" data-line-number="62">  <span class="kw">deriving</span> (<span class="dt">Eq</span>, <span class="dt">Ord</span>, <span class="dt">Show</span>)</a>
<a class="sourceLine" id="cb1-63" data-line-number="63">    <span class="co">-- Egyenlőség, rendezettség és kiírathatóság bevezetése</span></a>
<a class="sourceLine" id="cb1-64" data-line-number="64"></a>
<a class="sourceLine" id="cb1-65" data-line-number="65"><span class="ot">origo ::</span> <span class="dt">Point</span></a>
<a class="sourceLine" id="cb1-66" data-line-number="66">origo <span class="fu">=</span> <span class="dt">P</span> <span class="dv">0</span> <span class="dv">0</span> <span class="co">-- adatkonstruktor paraméterezése</span></a>
<a class="sourceLine" id="cb1-67" data-line-number="67"></a>
<a class="sourceLine" id="cb1-68" data-line-number="68"><span class="ot">xCoord ::</span> <span class="dt">Point</span> <span class="ot">-&gt;</span> <span class="dt">Double</span></a>
<a class="sourceLine" id="cb1-69" data-line-number="69">xCoord (<span class="dt">P</span> x _) <span class="fu">=</span> x <span class="co">-- Mintaillesztés adatkonstruktorra</span></a>
<a class="sourceLine" id="cb1-70" data-line-number="70"></a>
<a class="sourceLine" id="cb1-71" data-line-number="71"><span class="kw">data</span> <span class="dt">F</span> <span class="fu">=</span> <span class="dt">F</span> <span class="dt">Int</span> <span class="co">-- egyszerű típus és annak típusosztály példánya</span></a>
<a class="sourceLine" id="cb1-72" data-line-number="72"></a>
<a class="sourceLine" id="cb1-73" data-line-number="73"><span class="kw">instance</span> <span class="dt">Show</span> <span class="dt">F</span> <span class="kw">where</span></a>
<a class="sourceLine" id="cb1-74" data-line-number="74">   show (<span class="dt">F</span> i) <span class="fu">=</span> <span class="st">&quot;F &quot;</span> <span class="fu">++</span> show i </a>
<a class="sourceLine" id="cb1-75" data-line-number="75"></a>
<a class="sourceLine" id="cb1-76" data-line-number="76"><span class="kw">data</span> <span class="dt">Maybe</span> a <span class="fu">=</span> <span class="dt">Nothing</span> <span class="fu">|</span> <span class="dt">Just</span> a <span class="co">-- Polimorf adattípus</span></a>
<a class="sourceLine" id="cb1-77" data-line-number="77"></a>
<a class="sourceLine" id="cb1-78" data-line-number="78"><span class="kw">instance</span> <span class="dt">Show</span> a <span class="ot">=&gt;</span> <span class="dt">Show</span> (<span class="dt">Maybe</span> a) <span class="kw">where</span> <span class="co">-- polimorf adattípus példányosítása</span></a>
<a class="sourceLine" id="cb1-79" data-line-number="79">  show <span class="dt">Nothing</span> <span class="fu">=</span> <span class="st">&quot;Nothing&quot;</span></a>
<a class="sourceLine" id="cb1-80" data-line-number="80">  show (<span class="dt">Just</span> e) <span class="fu">=</span> <span class="st">&quot;Just &quot;</span> <span class="fu">++</span> show e</a></code></pre></div>
</body>
</html>

