> 1 <

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

studenttt

Members


Статус

7 сообщений

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

#6671   2012-10-19 22:58 GMT+3 часа(ов)      
Помогите пожалуйста с функциональным программированием, в частности MuLisp

1. Напишите функцию такую, что A(n) есть список (The answer is n). Так, значением (A 12) будет
(The answer is 12);
2. Для каждого из следующих условий определить функцию одного
аргумента L , которая имеет значение T, если условие удовлетворяется, и NIL
в противном случае: L имеет не более n элементов (атомов или подсписков).
3. Составить список студентов(10 человек). И написать функцию, которая спрашивает у пользователя ФИО студента из группы и выдает следующие данные о нем:
год рождения;
средний бал;
родителей;

studenttt

Members


Статус

7 сообщений

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

#6672   2012-10-19 23:53 GMT+3 часа(ов)      
3 не надо

Aoloa

Members


Статус

37 сообщений

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

#6673   2012-10-20 04:12 GMT+3 часа(ов)      
Вам этот MuLisp нужен?
Цитата
muLISP ist eine DOS-basierte kommerzielle Entwicklungsumgebung fuer LISP sowie eine eigene LISP-Variante. Sie wurde 1979 durch die Firma Soft Warehouse (Honolulu, Hawaii), die zwischenzeitlich von Texas Instruments gekauft wurde, entwickelt und z. B. fuer CP/M vertrieben. 1982 wurde es von der damals noch jungen Softwarefirma Microsoft lizenziert und fuer den IBM-PC veroeffentlicht. Es wurde in der Folge eine der weitestverbreiteten DOS-basierten LISP-Varianten.


Где можно достать какую-то информацию о нём?

Вообще, Ваши задачи очень простые. Например, на Scheme первое задание будет выглядеть (define (A n) `(The answer is ,n)), на Common Lisp’е — (defun A (n) `(The answer is ,n)) (правда, ответ в Common Lisp’е будет большими буквами). Но чтобы написать функцию на MuLisp'е, надо знать его особенности — где о них можно поитать?

Во втором задании непонятка: написано, что функция должна быть одного аргумента, а в описании аргументов два (список и n).
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 сообщений

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

#6674   2012-10-20 11:44 GMT+3 часа(ов)      
вот здесь http://w.comlib.ru/box/8/pro/1113/index6.1.html в принципе на всех сайтах одно и тоже

1 задание я так и сделала, но сомневалась) спасибо большое!

а 2 полностью звучало так:
Для каждого из следующих условий определить функцию одного
аргумента L , которая имеет значение T, если условие удовлетворяется, и NIL
в противном случае:
n-ый элемент L есть 12;
n-ый элемент L есть атом;
L имеет не более n элементов (атомов или подсписков).
2 случая мне удалось сделать, а 3-й не понимаю как.

Aoloa

Members


Статус

37 сообщений

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

#6675   2012-10-20 16:11 GMT+3 часа(ов)      
В Scheme и Common Lisp'е есть функция (length список), которая возвращает длину списка.

НО! Здесь по логике функция принимает два аргумента — список L и число n. Если функция одного аргумента и принимает список — то откуда берётся n? Это глобальная переменная, что ли?

На тех лиспах, которые я знаю, решение выглядело бы так (я считаю, что n — глобальная переменная)
;; Scheme:
(define n 5)
(define (f L) (<= (length L) n))
 
;;Common Lisp:
(defvar *n* 5)
(defun f (L) (<= (length L) *n*))
 


Как это будет на MuLisp’е — не знаю.
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 сообщений

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

#6677   2012-10-21 12:49 GMT+3 часа(ов)      
спасибо за помощь!)

vilkas

Members


Статус

3 сообщений

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

#6704   2012-10-28 13:57 GMT+3 часа(ов)      
помогите пожалуйста с задачей на AutoLisp решать начала но недоганяю как цикл создать!
Код следующий:
(defun P2()
(setq f(getstring "Введите список:"))
(setq f(read f))
(setq s(getstring "Введите уровень:"))
(setq s(read s))
(if (= s 0)
(foreach a f
(if (listp a)
(setq n(length a))
)
)
)
(if (> s 0)
(setq n 0)
(while(n <= s)
(progn
(setq L ())
(foreach a f
(if (listp a)
(setq L(append L a))

(princ n)
(princ)
)
То что жирным и нужно запихнуть в цыкл,
> 1 <


Онлайн :

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