Strona 1 z 1

[Ocaml] Długość listy

: 1 gru 2013, o 16:12
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.

[Ocaml] Długość listy

: 1 gru 2013, o 17:40
autor: norwimaj
Napisz po kolei, co wpisujesz w interpreterze albo w plikach. U mnie ten kod działa poprawnie.

[Ocaml] Długość listy

: 1 gru 2013, o 21:05
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;;

[Ocaml] Długość listy

: 1 gru 2013, o 21:12
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).

[Ocaml] Długość listy

: 1 gru 2013, o 21:21
autor: piti-n
Heh faktycznie, głupi bład z tymi przecinami i średnikami. Heh dzięki.