Różnice

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

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:dydaktyka:pp:haskell:lab-simple-funcs [2018/05/15 09:59]
kkutt [Zadania]
pl:dydaktyka:pp:haskell:lab-simple-funcs [2019/06/27 15:50] (aktualna)
Linia 24: Linia 24:
 sign x | x > 0  = 1 sign x | x > 0  = 1
        | x == 0 = 0        | x == 0 = 0
-       | x < 0 = -1</​code>​+       | x < 0 = -1</​code>​ ostatni warunek możemy też zapisać z wykorzystaniem słowa kluczowego `otherwise` (else z Javy): <code haskell>​sign :: Double -> Double 
 +sign x | x > 0  = 1 
 +       | x == 0 = 0 
 +       | otherwise ​= -1</​code>​
     * Najprostsza funkcja dodająca dwie liczby całkowite może być zdefiniowana jako: <​code>​sum : Z x Z --> Z : sum(m, n) = m + n</​code>​ W Haskellu możemy ją zrealizować na co najmniej trzy podstawowe sposoby:     * Najprostsza funkcja dodająca dwie liczby całkowite może być zdefiniowana jako: <​code>​sum : Z x Z --> Z : sum(m, n) = m + n</​code>​ W Haskellu możemy ją zrealizować na co najmniej trzy podstawowe sposoby:
       * Wykorzystując krotki:<​code haskell>​sum2a :: (Int, Int) -> Int       * Wykorzystując krotki:<​code haskell>​sum2a :: (Int, Int) -> Int
Linia 41: Linia 44:
   - Wyobraźmy sobie eksperyment biologiczny,​ w którym wykorzystuje się dwa rodzaje bakterii. Co sekundę bakteria typu A dzieli się na dwie bakterie typu B, a bakteria typu B dzieli się na jedną typu A i jedną typu B. Załóżmy, że bakterie nie umierają podczas eksperymentu.   - Wyobraźmy sobie eksperyment biologiczny,​ w którym wykorzystuje się dwa rodzaje bakterii. Co sekundę bakteria typu A dzieli się na dwie bakterie typu B, a bakteria typu B dzieli się na jedną typu A i jedną typu B. Załóżmy, że bakterie nie umierają podczas eksperymentu.
     - Na początku eksperymentu (w momencie 0) mamy dokładnie dokładnie dwie bakterie: jedną typu A i jedną typu B. Napisz funkcję, która **wyliczy liczbę bakterii obydwu typów w czasie s sekund od rozpoczęcia eksperymentu**.     - Na początku eksperymentu (w momencie 0) mamy dokładnie dokładnie dwie bakterie: jedną typu A i jedną typu B. Napisz funkcję, która **wyliczy liczbę bakterii obydwu typów w czasie s sekund od rozpoczęcia eksperymentu**.
-    - Obejrzyj wartości funkcji dla n ∈ {5, 7} \\ spodziewany wynik: <code haskell>​map bakteria [5..7] = [(21,​43),​(43,​85),​(85,​171)]</​code>​+    - Obejrzyj wartości funkcji dla n ∈ {5, 7} \\ spodziewany wynik: <code haskell>​map bakteria [0..7] = [(1,​1),​(1,​3),​(3,​5),​(5,​11),​(11,​21),​(21,​43),​(43,​85),​(85,​171)]</​code>​
     - W jaki sposób zmienią się wyniki, jeżeli eksperyment rozpoczniemy posiadając dokładnie **dwie bakterie typu A**? Napisz drugą funkcję,​ która to zamodeluje.     - W jaki sposób zmienią się wyniki, jeżeli eksperyment rozpoczniemy posiadając dokładnie **dwie bakterie typu A**? Napisz drugą funkcję,​ która to zamodeluje.
   - Napisz funkcję liczącą wartość **supercyfry** dla zadanego argumentu. Supercyfrę dla danej liczby całkowitej x definiujemy jako:\\ - x, jeżeli x jest jednocyfrową liczbą\\ - supercyfrę od xx, gdzie xx to suma cyfr liczby x (dla x mających co najmniej dwie cyfry)\\ Przykłady:   - Napisz funkcję liczącą wartość **supercyfry** dla zadanego argumentu. Supercyfrę dla danej liczby całkowitej x definiujemy jako:\\ - x, jeżeli x jest jednocyfrową liczbą\\ - supercyfrę od xx, gdzie xx to suma cyfr liczby x (dla x mających co najmniej dwie cyfry)\\ Przykłady:
pl/dydaktyka/pp/haskell/lab-simple-funcs.1526371189.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