Поиск:

Ответ в темуСоздание новой темы Создание опроса
> 3 небольшие задачки, списки 
:(
    Опции темы
worden
  Дата 16.1.2010, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Для Scheme:

1) ( g '( c t d) ) => ( (c 0) ( t 1) ( d 2) )

2)  (dep (c 6)(t 3)(d 2)) => ((c t d)(6 3 2))


Это сообщение отредактировал(а) worden - 17.1.2010, 13:36
PM MAIL   Вверх
AyeAye
Дата 16.1.2010, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



первая
Код

(defun g(x n) соединяет два элеманта в список
(cons x n))

(defun f(L n) проходит по списку и присоединяет к каждому эл. номер
  (cond
    ((eq nil L) nil)
    (t (cons(g (car L) n) (f (cdr L) (+ n 1))) )
  )
)

(defun z(L) обертка для f
  (f L 1)
)

(z '(t q z d b)) использоваение

результат: ((T . 1) (Q . 2) (Z . 3) (D . 4) (B . 5))

PM MAIL   Вверх
worden
Дата 16.1.2010, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В Scheme  не работает... кроме как на define не знаю что еще поменять ...ошибка #%plain-lambda: not an identifier in: (x n)
И плюс  ответ нужен не в парах (a . 1) , а     ( а 1) просто....буду благодарен за помощь.
PM MAIL   Вверх
k0rvin
Дата 24.1.2010, 01:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



элементарно ж, Ватсон! читай SICP =)

Код

(define (make-simple-iter)
  (let ((x -1)) (lambda () (set! x (+ x 1)) x)))

(define (g xs)
  (let ((iter (make-simple-iter)))
    (map (lambda (x) (list x (iter))) xs)))

(define (dep . args)
  (apply map list args))

(g '(c t d))    ; => ((c 0) (t 1) (d 2))

(dep '(c 6) '(t 3) '(d 2))    ; => ((c t d) (6 3 2))


Это сообщение отредактировал(а) k0rvin - 24.1.2010, 01:13


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


Шустрый
*


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

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



как вариант - Common Lisp:
Код

(defun elm-num (w &optional (n 0))
  (when w (cons (list (car w) n) (elm-num (cdr w) (1+ n)))))

> (elm-num '(a b c))
((A 0) (B 1) (C 2))

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

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

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


 




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


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

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