Ocaml: используя list.length - PullRequest
       2

Ocaml: используя list.length

3 голосов
/ 01 апреля 2011

Я пытаюсь найти длину списка в ocaml.

Я вызываю функцию, которая сначала называется

> let get_list_length e in   
> print_list_length out x

. Фактический код в get_list_length гдеЯ сбит с толку.«E» - это список «команд», и я хочу найти длину всех «команд».

let get_list_length (e: values): unit =
соответствует e с
let x = list.length (e) ;;

Итак, мой e - это список "команд", которые представляют собой набор значений, указанных в моем файле грамматики.Я не понимаю, как получить длину списка, так как e - это список значений, и мне нужна длина этого списка.

Буду признателен за любую помощь.

1 Ответ

7 голосов
/ 01 апреля 2011

Получить длину списка просто:

List.length my_list

Ваша функция get_list_length может быть простой:

let get_list_length e = List.length e

или более просто:

let get_list_length = List.length

Как вы уже определили, get_list_length возвращает тип unit, поэтому вы не получите от него ничего полезного.Вы также неправильно используете совпадение, обычно оно используется так:

match e with something -> do something
| something_else -> do something_else
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...