> 1 <

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

studenttt

Members


Статус

7 сообщений

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

#6739   2012-11-09 18:49 GMT+3 часа(ов)      
Помогите пожалуйста решить задачку

С помощью предложений COND или CASE определите функцию, которая
возвращает в качестве значения столицу заданного аргументом государства.

studenttt

Members


Статус

7 сообщений

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

#6740   2012-11-09 19:07 GMT+3 часа(ов)      
и еще одну, пожалуйста!!!!
Запишите следующую лямбду-вызов с использованием формы LET и
вычислите на машине
((LAMBDA (x y) (LIST x y)
‘(+ 1 2) ‘c)

Aoloa

Members


Статус

37 сообщений

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

#6741   2012-11-09 22:26 GMT+3 часа(ов)      
Цитата
studenttt :
Помогите пожалуйста решить задачку

С помощью предложений COND или CASE определите функцию, которая
возвращает в качестве значения столицу заданного аргументом государства.




На Scheme с помощью cond:

(define (столица гос-во)
(cond ((eq? гос-во 'Китайская-Народная-Республика) 'Пекин)
((or (eq? 'Китай) (eq? гос-во 'Китайская-Республика)) 'Тайбэй)
((eq? гос-во 'Республика-Корея) 'Сеул)
((eq? гос-во 'Корейская-Народная-Демократическая-Республика) 'Пхеньян)
((or (eq? гос-во 'Германия) (eq? гос-во 'Федеративная-Республика-Германия)) 'Берлин)
((eq? гос-во 'Монголия) 'Улан-Батор)))


На Scheme с помощью case:
(define (столица гос-во)
(case гос-во
((Китайская-Народная-Республика) 'Пекин)
((Китай Китайская-Республика) 'Тайбэй)
((Республика-Корея) 'Сеул)
((Корейская-Народная-Демократическая-Республика) 'Пхеньян)
((Германия Федеративная-Республика-Германия) 'Берлин)
((Монголия) 'Улан-Батор)))


Пример использования:
(столица 'Монголия)
;; результат: Улан-Батор



На Common Lisp’е с помощью cond (почему-то мой CLISP неправильно работает с кириллицей в Windows, так что пусть всё будет латиницей):

(defun capital-city (state)
(cond ((eq state 'Peoples-Repulic-of-China) 'Beijing)
((or (eq state 'China) (eq state 'Republic-of-China)) 'Taipei)
((eq state 'Republic-of-Korea) 'Seoul)
((eq state 'Democratic-Peoples-Republic-of-Korea) 'Pyongyang)
((or (eq state 'Germany) (eq state 'Federal-Republic-of-Germany)) 'Berlin)
((eq state 'Mongolia) 'Ulaanbataar))))


А вот на Common Lisp с case:
(defun capital-city (state)
(case state
((Peoples-Repulic-of-China) 'Beijing)
((China Republic-of-China) 'Taipei)
((Republic-of-Korea) 'Seoul)
((Democratic-Peoples-Republic-of-Korea) 'Pyongyang)
((Germany Federal-Republic-of-Germany) 'Berlin)
((Mongolia) 'Ulaanbataar)))


Пример использования:
(capital-city 'China)
;; результат: TAIPEI

отредактировал(а) Aoloa: 2012-11-10 19:08 GMT+3 часа(ов)
With iTeX* your entire life can be encapsulated into a dynamic hyperdocument, downloadable by anybody you designate (Donald E. Knuth, An Earthshaking Announcement)

Aoloa

Members


Статус

37 сообщений

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

#6742   2012-11-09 22:33 GMT+3 часа(ов)      
Цитата
studenttt :
и еще одну, пожалуйста!!!!
Запишите следующую лямбду-вызов с использованием формы LET и
вычислите на машине
((LAMBDA (x y) (LIST x y)
‘(+ 1 2) ‘c)


У Вас апострофы неправильные: должен быть 'такой, а у Вас ‘такой. Будьте осторожны! Апостроф надо набирать на обычной американской клавиатуре.

Кроме того, вы скобку пропустилию после лямбды.

Цитата
Запишите следующую лямбду-вызов с использованием формы LET и
вычислите на машине
((LAMBDA (x y) (LIST x y)
‘(+ 1 2) ‘c)


Будет так (код одинаковый в Scheme и Common Lisp):
(let ((x '(+ 1 2))
(y 'c))
(list x y))


Ну а вычислить Вы можете сами. Если вдруг находитесь за компьютером без реализации лиспа, можете использовать BiwaScheme.
With iTeX* your entire life can be encapsulated into a dynamic hyperdocument, downloadable by anybody you designate (Donald E. Knuth, An Earthshaking Announcement)

studenttt

Members


Статус

7 сообщений

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

#6743   2012-11-09 23:02 GMT+3 часа(ов)      
спасибо за замечания и за помощь!!=) действительно, очень выручили!
> 1 <


Онлайн :

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