Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Nowa wersja
Poprzednia wersja
pl:dydaktyka:pp:haskell:lab-intro [2018/04/20 10:29]
kkutt utworzono
pl:dydaktyka:pp:haskell:lab-intro [2020/03/02 01:57] (aktualna)
msl [Debugger]
Linia 162: Linia 162:
  
 Zdefiniujemy teraz własne funkcje. W tym celu proszę utworzyć nowy plik z rozszerzeniem .hs. Proszę w nim utworzyć następującą funkcje:<​code>​ Zdefiniujemy teraz własne funkcje. W tym celu proszę utworzyć nowy plik z rozszerzeniem .hs. Proszę w nim utworzyć następującą funkcje:<​code>​
-incAndtriple ​v = ( v + 1 ) * 3+incAndTriple ​v = ( v + 1 ) * 3
  
 specialCases 1 = "​Hello"​ specialCases 1 = "​Hello"​
Linia 220: Linia 220:
 quicksort [] = []                                                     -- definiuje zachowanie na pustej liście ​ quicksort [] = []                                                     -- definiuje zachowanie na pustej liście ​
 quicksort xx@(x:​xs) ​                                                  -- @ inforumuje żeby zmienna xx była widoczna jako całość i jako poszczególne części x i xs quicksort xx@(x:​xs) ​                                                  -- @ inforumuje żeby zmienna xx była widoczna jako całość i jako poszczególne części x i xs
- | trace ("qs: "++ show x ++ " " ++show xx) False = [] -- zastosowano tu składnie | case = execute | case2 = execute2, ponieważ trace zwróci False ta gałąź się nigdy nie wykona, ale zostanie wypisana wiadomość na stderr+                ​| trace ("qs: "++ show x ++ " " ++show xx) False = [] -- zastosowano tu składnie | case = execute | case2 = execute2, ponieważ trace zwróci False ta gałąź się nigdy nie wykona, ale zostanie wypisana wiadomość na stderr
                 | otherwise = quicksort low ++ x : quicksort high     -- otherwise to nic innego jak True, można nawet sprawdzić True == otherwise w GHCi ta gałąź się wykona w pozostałych przypadkach (w tym wypadku zawsze), następuje konkatenacja listy posortowanej quicksortem z listą składającą się z elementu rodzielającego i listy posortowanej quicksortem                 | otherwise = quicksort low ++ x : quicksort high     -- otherwise to nic innego jak True, można nawet sprawdzić True == otherwise w GHCi ta gałąź się wykona w pozostałych przypadkach (w tym wypadku zawsze), następuje konkatenacja listy posortowanej quicksortem z listą składającą się z elementu rodzielającego i listy posortowanej quicksortem
                               where low = [e | e <- xs, e < x]        -- w bloku where następują definicje zmiennych lokalnych low to podlista xs z wartościami mniejszymi od strażnika x                               where low = [e | e <- xs, e < x]        -- w bloku where następują definicje zmiennych lokalnych low to podlista xs z wartościami mniejszymi od strażnika x
Linia 235: Linia 235:
 :break Main 5 31 :break Main 5 31
 :trace quicksort [1..20] :trace quicksort [1..20]
-:line+:list
 :step :step
 </​code>​ </​code>​
pl/dydaktyka/pp/haskell/lab-intro.1524212985.txt.gz · ostatnio zmienione: 2019/06/27 15:54 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0