Programowanie funkcyjne/Funktory/Ćwiczenia: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Przemek (dyskusja | edycje)
Nie podano opisu zmian
 
Przemek (dyskusja | edycje)
Nie podano opisu zmian
Linia 1: Linia 1:
\cwiczenia
==Ćwiczenia==
**;Podaj sygnaturę implementacji struktury danych liczb zespolonych
* Podaj sygnaturę implementacji struktury danych liczb zespolonych (wyłącznie konstruktory i selektory biegunowe i prostokątne). Sygnatura powinna pasować do dowolnej implementacji: biegunowej, prostokątnej lub mieszanej. Naszkicuj implementację reszty pakietu liczb zespolonych, jako funktor, którego parametrem jest implementacja struktury danych, a wynikiem w pełni funkcjonalny pakiet.
*;(wyłącznie konstruktory i selektory biegunowe i prostokątne).
* Przypomnijmy sobie pakiet liczb wymiernych z poprzedniego wykładu. Można go zapisać w postaci funktora, sparametryzowanego (wybranym typem) liczb całkowitych. Podaj sygnaturę liczb całkowitych zawierającą wszystkie operacje potrzebne do zaimplementowania pakietu liczb wymiernych ze skracaniem ułamków. (Potrzebne są: operacje arytmetyczne, równość, modulo i ew. porównywanie.) Naszkicuj budowę funktora implementującego taki pakiet liczb wymiernych.  
*;Sygnatura powinna pasować do dowolnej implementacji:
* Wyobraźmy sobie pakiet implementujący wielomiany, wraz z rozmaitymi operacjami na wielomianach: suma, różnica, iloczyn, iloraz, reszta z dzielenia, porównanie, pochodna, itp. Pakiet taki może być sparametryzowany typem liczb (ciałem), nad którym rozpatrujemy wielomiany. Podaj odpowiednie sygnatury i naszkicuj sposób implementacji pakietu wielomianów jako funktora. Czy implementacja jest na tyle ogólna, aby pakiet działał nie tylko dla liczb zmiennopozycyjnych, ale również dla zespolonych i wymiernych?
*;biegunowej, prostokątnej lub mieszanej.  
* Korzystając z wyników poprzednich ćwiczeń podaj, jak można skonstruować pakiet funkcji wymiernych? (Jest to pakiet liczb wymiernych, których współczynniki są wielomianami.)
*;Naszkicuj implementację reszty pakietu liczb zespolonych,
* Korzystając z wyników poprzednich ćwiczeń podaj, jak można skonstruować pakiet wielomianów dwóch zmiennych? (Są to wielomiany jednej zmiennej, których współczynniki są wielomianami drugiej zmiennej.)
*;jako funktor, którego parametrem jest implementacja struktury danych,
* Porównaj funktory z mechanizmem dziedziczenia w programowaniu obiektowym. W jaki sposób można zasymulować hierarchię klas za pomocą funktorów? Co z rzutowaniem typów? Co z metodami wirtualnymi? (Nie wiem czy to dobre zadanie. Może tak, a może jest już zbyt późno, ale jakiś związek widzę.)
*;a wynikiem w pełni funkcjonalny pakiet.
**;Przypomnijmy sobie pakiet liczb wymiernych z poprzedniego wykładu.
*;Można go zapisać w postaci funktora, sparametryzowanego
*;(wybranym typem) liczb całkowitych.
*;Podaj sygnaturę liczb całkowitych zawierającą wszystkie
*;operacje potrzebne do zaimplementowania pakietu liczb wymiernych
*;ze skracaniem ułamków.
*;(Potrzebne są: operacje arytmetyczne, równość, modulo i ew.\
*;porównywanie.)
*;Naszkicuj budowę funktora implementującego taki pakiet
*;liczb wymiernych.  
**;Wyobraźmy sobie pakiet implementujący wielomiany, wraz z
*;rozmaitymi operacjami na wielomianach: suma, różnica, iloczyn,
*;iloraz, reszta z dzielenia, porównanie, pochodna, itp.
*;Pakiet taki może być sparametryzowany typem liczb (ciałem),
*;nad którym rozpatrujemy wielomiany.
*;Podaj odpowiednie sygnatury i naszkicuj sposób implementacji
*;pakietu wielomianów jako funktora.
*;Czy implementacja jest na tyle ogólna, aby pakiet działał nie tylko
*;dla liczb zmiennopozycyjnych, ale również dla zespolonych i  
*;wymiernych?
**;Korzystając z wyników poprzednich ćwiczeń podaj, jak można
*;skonstruować pakiet funkcji wymiernych?
*;(Jest to pakiet liczb wymiernych, których współczynniki są
*;wielomianami.)
**;Korzystając z wyników poprzednich ćwiczeń podaj, jak można
*;skonstruować pakiet wielomianów dwóch zmiennych?
*;(Są to wielomiany jednej zmiennej, których współczynniki są
*;wielomianami drugiej zmiennej.)
**;Porównaj funktory z mechanizmem dziedziczenia w programowaniu
*;obiektowym.
*;W jaki sposób można zasymulować hierarchię klas za pomocą funktorów?
*;Co z rzutowaniem typów?
*;Co z metodami wirtualnymi?
*;(Nie wiem czy to dobre zadanie.
*;Może tak, a może jest już zbyt późno, ale jakiś związek widzę.)

Wersja z 20:31, 19 lip 2006

Ćwiczenia

  • Podaj sygnaturę implementacji struktury danych liczb zespolonych (wyłącznie konstruktory i selektory biegunowe i prostokątne). Sygnatura powinna pasować do dowolnej implementacji: biegunowej, prostokątnej lub mieszanej. Naszkicuj implementację reszty pakietu liczb zespolonych, jako funktor, którego parametrem jest implementacja struktury danych, a wynikiem w pełni funkcjonalny pakiet.
  • Przypomnijmy sobie pakiet liczb wymiernych z poprzedniego wykładu. Można go zapisać w postaci funktora, sparametryzowanego (wybranym typem) liczb całkowitych. Podaj sygnaturę liczb całkowitych zawierającą wszystkie operacje potrzebne do zaimplementowania pakietu liczb wymiernych ze skracaniem ułamków. (Potrzebne są: operacje arytmetyczne, równość, modulo i ew. porównywanie.) Naszkicuj budowę funktora implementującego taki pakiet liczb wymiernych.
  • Wyobraźmy sobie pakiet implementujący wielomiany, wraz z rozmaitymi operacjami na wielomianach: suma, różnica, iloczyn, iloraz, reszta z dzielenia, porównanie, pochodna, itp. Pakiet taki może być sparametryzowany typem liczb (ciałem), nad którym rozpatrujemy wielomiany. Podaj odpowiednie sygnatury i naszkicuj sposób implementacji pakietu wielomianów jako funktora. Czy implementacja jest na tyle ogólna, aby pakiet działał nie tylko dla liczb zmiennopozycyjnych, ale również dla zespolonych i wymiernych?
  • Korzystając z wyników poprzednich ćwiczeń podaj, jak można skonstruować pakiet funkcji wymiernych? (Jest to pakiet liczb wymiernych, których współczynniki są wielomianami.)
  • Korzystając z wyników poprzednich ćwiczeń podaj, jak można skonstruować pakiet wielomianów dwóch zmiennych? (Są to wielomiany jednej zmiennej, których współczynniki są wielomianami drugiej zmiennej.)
  • Porównaj funktory z mechanizmem dziedziczenia w programowaniu obiektowym. W jaki sposób można zasymulować hierarchię klas za pomocą funktorów? Co z rzutowaniem typów? Co z metodami wirtualnymi? (Nie wiem czy to dobre zadanie. Może tak, a może jest już zbyt późno, ale jakiś związek widzę.)