[Ocaml] Długość listy

Awatar użytkownika
piti-n
Użytkownik
Użytkownik
Posty: 534
Rejestracja: 24 gru 2010, o 22:42
Płeć: Mężczyzna
Lokalizacja: Wroclaw
Podziękował: 41 razy
Pomógł: 45 razy

[Ocaml] Długość listy

Post autor: piti-n »

Mam do napisania program który zlicza ilość elementów na liście.

Kod: Zaznacz cały

let rec length list= match list with 
  | [] -> 0;                           
  | _::tail -> 1 + length tail;;  
Lecz niestety dla każej listy nie pustej zwraca mi 1.

Próbowałem jeszcze tak

Kod: Zaznacz cały

let rec w lista length = match lista with
  |  [] -> 0                                 
    |a::b -> w b length+1;;       
 let length a  = w a 0;;    
Ale niestety to samo.
norwimaj
Użytkownik
Użytkownik
Posty: 5101
Rejestracja: 11 mar 2011, o 16:31
Płeć: Mężczyzna
Lokalizacja: 52°16'37''N 20°52'45''E
Podziękował: 4 razy
Pomógł: 1001 razy

[Ocaml] Długość listy

Post autor: norwimaj »

Napisz po kolei, co wpisujesz w interpreterze albo w plikach. U mnie ten kod działa poprawnie.
Awatar użytkownika
piti-n
Użytkownik
Użytkownik
Posty: 534
Rejestracja: 24 gru 2010, o 22:42
Płeć: Mężczyzna
Lokalizacja: Wroclaw
Podziękował: 41 razy
Pomógł: 45 razy

[Ocaml] Długość listy

Post autor: piti-n »

ok, to po kolei

Kod: Zaznacz cały

let rec length list= match list with 
  | [] -> 0;                           
  | _::tail -> 1 + length tail;; 
nastepnie

Kod: Zaznacz cały

let a= [1,2,3];;
i

Kod: Zaznacz cały

length a;;
norwimaj
Użytkownik
Użytkownik
Posty: 5101
Rejestracja: 11 mar 2011, o 16:31
Płeć: Mężczyzna
Lokalizacja: 52°16'37''N 20°52'45''E
Podziękował: 4 razy
Pomógł: 1001 razy

[Ocaml] Długość listy

Post autor: norwimaj »

piti-n pisze:

Kod: Zaznacz cały

let a= [1,2,3];;
Elementy listy oddzielaj średnikami. U mnie gdy coś takiego wpisuję, to dostaję listę, której jedynym elementem jest krotka (1, 2, 3).
Awatar użytkownika
piti-n
Użytkownik
Użytkownik
Posty: 534
Rejestracja: 24 gru 2010, o 22:42
Płeć: Mężczyzna
Lokalizacja: Wroclaw
Podziękował: 41 razy
Pomógł: 45 razy

[Ocaml] Długość listy

Post autor: piti-n »

Heh faktycznie, głupi bład z tymi przecinami i średnikami. Heh dzięki.
ODPOWIEDZ