> 1 <

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

serg

Members


Статус

5 сообщений

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

#319   2009-03-27 02:35 GMT+3 часа(ов)      
Дана программа:
(define (cube x) (* x x x))
(define (p x) (- (* 3 x) (* 4 (cube x))))
(define (sine x)
(if (not (> (abs x) 0.1)
x
(p (sine (/ x 3)))))
Можно ли "встроить" в неё счётчик, который бы считал, сколько раз была вызвана процедура (sine x) при, скажем, x=10?

utkin

Members


Статус

21 сообщений

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

#2256   2010-06-03 13:52 GMT+3 часа(ов)      
Можно, но для этого придется изменить ее параметры. Нужно передавать и принимать пару, один из элементов пусть будет все тот же х, а другим будет счетчик вызовов, который (sine) будет просто увеличивать на единицу.

misha

Moderators


Статус

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

#2261   2010-06-03 17:40 GMT+3 часа(ов)      
>Можно, но для этого придется изменить ее параметры.
Также можно определить счетчик используя замыкания)

отредактировал(а) misha: 2010-06-04 03:45 GMT+3 часа(ов)

utkin

Members


Статус

21 сообщений

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

#2283   2010-06-04 17:38 GMT+3 часа(ов)      
Дайте пожалуйста пример, а то я не силен. Просто интересно.

misha

Moderators


Статус

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

#2284   2010-06-04 17:51 GMT+3 часа(ов)      
> (define (counter init)
(lambda() (set! init (1+ init)) init))
> (define cc (counter 1))
> (cc)
2
> (cc)
3
> (cc)
4
> (define cb (counter -2))
> (cb)
-1
> 1 <


Онлайн :

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




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