Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [OCaml] Вопрос новичка 
V
    Опции темы
Straight
Дата 23.3.2009, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 28.4.2007

Репутация: нет
Всего: нет



Хочу создать функцию, принимающую int x и возвращающую список [1;...;x]

Код

let range1 r =
  let inc yy = yy + 1
  and y = 0
  in
  let rec rng xx =
    match xx with 
        0 -> []
      | _ -> (inc y) :: rng(xx-1)
  in
  rng r;;


Но возвращается пустой список.
Где грабли?
PM MAIL   Вверх
Void
Дата 23.3.2009, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 1
Всего: 173



Ну, во-первых, не пустой, а список из одних единиц. Задумка непонятна, аргумент rng определяет только длину списка, а не содержимое.
Можно так:
Код

let range n =
    let rec range' i =
        if i > n then []
        else i :: range' (i + 1)
    in range' 1



--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума «Функциональные языки: общие вопросы»
Void
  • Пожалуйста, создавайте темы с содержательными названиями. Если у Вас вопрос по конкретному языку, укажите его в заголовке, например: «[Haskell] Как использовать монаду State».
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Функциональные языки: общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0392 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.