[nem-pl] static w interface
Lukasz Kaiser
kaiser at tenet.pl
Mon Nov 3 23:31:20 CET 2003
No wlasnie - chcialem sobie napisac cos takiego, zeby bylo
interface eq ('a) { (=) ( _ : 'a, _ : 'a ) : bool ; }
interface comparable ('a) where 'a :> eq ('a) {
(<) ( _ : 'a, _ : 'a ) : bool ;
(*) (>) ( x : 'a, y : 'a ) = not ( ( x < y ) or ( x = y ) ) ;
}
module list ('a) where ('a) :> comparable ('a) implements comparable('a){
'a (<) ( x : list 'a, y : list 'a ) implements
comparable.(<) = match (x,y) with [| (l::ls, m::ms) -> if (l<m) ...
}
Mam w zwiazku z tym takie pytania:
1) w gramatyce przed interface mozne wstawic attrs, co to znaczy jak
interface jest z zasiegu namespace a nie zadnej klasy, np. w ncc/tree.n
2) co ile sie w koncu robi update strony (kiedy class_body) ?
3) czy jak pisze w naglowku klasy / modulu ze 'a :> cos to musze to potem
powtarzac przed funkcja ?
4) czy operatory moga normalnie byc w interface, a funkcje statyczne ?
5) jesli funkcje statyczne moga, to jak ich potem uzyc, moge tak napisac
jak wyzej, po prostu l < m ?
6) czemu w naglowku typu przy class / module mozna pominac wypisanie
zmiennych (np. w ncc/tree.n) ? W ogole co dokladnie ma znaczyc
type_header i kiedy musi byc niepusty ?
7) jesli chodzi o (*) - czy w ogole sa jakies mysli na temat jej robienia
czy absolutinie nie i zostawiamy to dziedziczeniu / rozszerzeniom /...?
- lk
More information about the devel-pl
mailing list