Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Scheme] функция принадлежности точки к области, Реферат по функц. прогр. 
:(
    Опции темы
MemphisMayFire
Дата 22.4.2011, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 22.4.2011
Где: москва

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



Нужно срочно дописать реферат по ФП, сделано все, кроме небольшой программе на lisp. 
В чем суть программы:
нужно проверить, попадает ли точка в заданную область, например:
функция circle, которая возвращает функцию от
 двух агрументов-координат, возвращающую истину, если точка с
 координатами x, y принадлежит области, и ложь в противном случае.
Использовать можно так:
 guile> (define c (circle 0 0 1))
 guile> (c 0.5 0.5)
 #t
 guile> (c 1 1)
 #f

есть код на си (мне нужно сравнить с объектно-ориентированным), если он чем поможет - могу кинуть.
Заранее спасибо!
PM MAIL   Вверх
Void
Дата 22.4.2011, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


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

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



Код
(define (circle cx cy r)
    (lambda (x y)
        (<= (+ (expt (- cx x) 2) (expt (- cy y) 2)) (expt r 2))))



--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
k0rvin
Дата 22.4.2011, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



думаю для реферата лучше переформатировать в несколько строк, чтоб меньше шокировать количеством скобок на строку и четче отобразить структуру кода =)

как-нибудь так:
Код

(define (sqr x)
  (expt x 2))

(define (circle cx cy r)
  (lambda (x y)
    (<= (+ (sqr (- x cx))
           (sqr (- y cy)))
        (sqr r))))



--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
MemphisMayFire
Дата 22.4.2011, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 22.4.2011
Где: москва

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



Что-то не очень понял как работает, привидите, пожалуйста, пример ввода)

Это сообщение отредактировал(а) MemphisMayFire - 22.4.2011, 20:18
PM MAIL   Вверх
k0rvin
Дата 22.4.2011, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

> (define c (circle 0 0 1))
> (c 0.5 0.5)
#t
> (c 1 1)
#f



--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
MemphisMayFire
Дата 22.4.2011, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 22.4.2011
Где: москва

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



А, вроде все, спасибо всем большое!

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума LISP
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Lisp — это целое семейство языков. Всегда указывайте в теме используемый диалект (Common Lisp, Scheme и т.д.).
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

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

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


 




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


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

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