Buffalo
Buffalo

Reputation: 205

How to use List.nth inside a function

I am new to OCaml. I am trying to use List.nth just like List.length but it keeps giving me a syntax error or complains about not matching the interface defined in another file. Everything seems to work fine if I comment out using List.nth

Thanks

Upvotes: 0

Views: 11906

Answers (1)

Jeffrey Scofield
Jeffrey Scofield

Reputation: 66823

It's hard to help unless you show the code that's not working. Here is a session that uses List.nth:

$ ocaml
        OCaml version 4.00.0

# let x = [3;5;7;9];;
val x : int list = [3; 5; 7; 9]
# List.nth x 2;;
- : int = 7
#

Here's a session that defines a function that uses List.nth. (There's nothing special about this.)

# let name_of_day k =
    List.nth ["Mon";"Tue";"Wed";"Thu";"Fri";"Sat";"Sun"] k;;
val name_of_day : int -> string = <fun>
# name_of_day 3;;
- : string = "Thu"
# 

(As a side comment: using List.nth is often inappropriate. It takes time proportional to n to find the nth element of a list. People just starting with OCaml often think of it like accessing an array--i.e., constant time--but it's not.)

Upvotes: 5

Related Questions