> 1 <

Автор Сообщение

utkin

Members


Статус

21 сообщений

Где: Liechtenstein
Род занятий:
Возраст:

#2308   2010-06-07 11:43 GMT+3 часа(ов)      
Интересует в функциональном стиле. Я пытаюсь перейти с императивного (Дельфи) к функциональному. Очень хочется везде сувать переменные. Помогите кодом.

utkin

Members


Статус

21 сообщений

Где: Liechtenstein
Род занятий:
Возраст:

#2309   2010-06-07 11:48 GMT+3 часа(ов)      
Смысл игры - комп загадывает число от 1 до 100, а человек должен угадать за 10 попыток (10-ти вполне достаточно)

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#2311   2010-06-07 14:19 GMT+3 часа(ов)      
Комп загадывает число от 0 до 99, а человек должен угадать за 10 попыток.
Подходит?)
((lambda (user loop)
(loop 9 user (random 100) loop))
(lambda() (display "Enter number: ")(read))
(lambda(count user-num num loop)
(if (= (user-num) num)
(display "You win!")
(if (zero? count)
(printf "You lose!\nNumber: ~d" num)
(loop (1- count) user-num num loop)))))

utkin

Members


Статус

21 сообщений

Где: Liechtenstein
Род занятий:
Возраст:

#2318   2010-06-08 12:51 GMT+3 часа(ов)      
Спасибо, переделать на от 1 до 100 сам смогу . А можно прокомментировать каждую строчку? Мне нужно именно понять как все это происходит (код пока на втором плане). Вроде как через рекурсию по числу попыток?

1-
- PLT Scheme ругается. На чем писано?

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#2319   2010-06-08 14:13 GMT+3 часа(ов)      
>PLT Scheme ругается. На чем писано?
1+, 1-, -1+ - это классика)

printf реализуется с использованием format (см. SRFI-28 ).

Вопрос для размышления
"Вы и впрямь думаете, что Common Lisp более навороченный диалект Лиспа, чем Scheme?"

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#2323   2010-06-08 16:35 GMT+3 часа(ов)      
Замыкание (lambda(count user-num num loop) ...) является основной вычислительной частью кода.
count - текущее значение счетчика.
user-num - ссылка на функцию, возвращающую введенное пользователем число.
num - число, которое требуется угадать.
loop - ссылка на саму себя.

utkin

Members


Статус

21 сообщений

Где: Liechtenstein
Род занятий:
Возраст:

#2344   2010-06-09 11:04 GMT+3 часа(ов)      
Цитата
"Вы и впрямь думаете, что Common Lisp более навороченный диалект Лиспа, чем Scheme?"

Я так не думаю, я вообще недостаточно силен в этих вопросах, чтобы так думать . Просто скопипастил Ваш примерчик и получил ошибку . Потыкал чуть-чуть, но чего-то не пойму как пристроить.

Цитата
1+, 1-, -1+ - это классика)

К сожалению, я только еще погружаюсь в функциональное программирование, не подскажите как это в обычном виде? (1- count) - случайно не (- count 1)?
Сейчас читаю стандарт, но там все бегло и мне сильно мешает мой опыт Дельфи, поэтому для меня картина абсолютно не понятная.

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#2345   2010-06-09 11:08 GMT+3 часа(ов)      
>(1- count) - случайно не (- count 1)?
Абсолютно верно!

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#2346   2010-06-09 11:26 GMT+3 часа(ов)      
>... мне сильно мешает мой опыт Дельфи...
Просто, не спешите! Всему свое время) Схему невозможно изучить за месяц, в лучшем случае Вы осилите только r5rs. Но это только вершина айсберга) И не забывайте, что есть еще и CL, который, имхо, желательно бы также знать. Иногда ведь приходится переводить на Схему исходники на CL.

utkin

Members


Статус

21 сообщений

Где: Liechtenstein
Род занятий:
Возраст:

#2350   2010-06-10 16:47 GMT+3 часа(ов)      
Кто такой CL?

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#2351   2010-06-10 17:16 GMT+3 часа(ов)      
>Кто такой CL?
Common Lisp

utkin

Members


Статус

21 сообщений

Где: Liechtenstein
Род занятий:
Возраст:

#2363   2010-06-11 10:26 GMT+3 часа(ов)      
ОК, не подскажете литературку по CL? Я готов учиться, но трудно найти литературу. И еще, когда я вижу задачу, уже примерно представляю ее решение на Дельфи (в смысле в императивном стиле - какие структуры использовать, переменные, циклы и т.д.), мне тяжело представлять ее по-другому.

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#2365   2010-06-11 12:03 GMT+3 часа(ов)      
Сейчас вам не стоит распыляться! Разберитесь хотя бы со схемой. Тем более, что она разрабатывалась как простой (для понимания студентов, едва освоивших структурное программирование) диалект лиспа.

kreol

Members


Статус

87 сообщений

Где: Ukraine Днепропетровск
Род занятий: студент
Возраст: 26

#2366   2010-06-11 12:16 GMT+3 часа(ов)      
это опять я) у меня что-то не рабоатет код( пишет reference to undefined identifier: random.
R5Rs

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#2368   2010-06-11 12:31 GMT+3 часа(ов)      
Воспользуйтесь random-integer из SRFI-27. Либо выберите Pretty Big(PLT Scheme Pretty Big).

kreol

Members


Статус

87 сообщений

Где: Ukraine Днепропетровск
Род занятий: студент
Возраст: 26

#2369   2010-06-11 12:36 GMT+3 часа(ов)      
ок Pretty Big получилось. а это SRFI-27 что такое?
а какая из тех языков в плт самая полная?

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#2370   2010-06-11 12:43 GMT+3 часа(ов)      
Scheme Requests for Implementation (SRFI)
Это дополнительные библиотеки ставшие де факто стандартными.
> 1 <


Онлайн :

0 пользователь(ей), 13 гость(ей) :




Реклама на сайте: