Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создайте список из этих цифры, Создайте список из этих цифры 
:(
    Опции темы
virux
Дата 22.2.2011, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



дается трехзначный номер 123. Создайте список из этих цифры  напиши функцию (cifri3 n){эти цифры в список нужны как елементы}
PM MAIL   Вверх
VH_
Дата 23.2.2011, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Код
(defun F (N &optional L)
 (if (zerop N) L
  (F
   (truncate N 10)
   (cons (rem N 10) L))))

PM MAIL   Вверх
virux
Дата 1.3.2011, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(VH_ @ 23.2.2011,  11:02)
Код
(defun F (N &optional L)
 (if (zerop N) L
  (F
   (truncate N 10)
   (cons (rem N 10) L))))

спс. конечно,

объясни словами эту строчку [(defun F (N &optional L)] пожалусто.

Это сообщение отредактировал(а) virux - 2.3.2011, 00:26
PM MAIL   Вверх
k0rvin
Дата 2.3.2011, 08:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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





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


Бывалый
*


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

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



Другой вариант
Код
(defun F (N)
 (cond
  ((minusp N) (cons '- (F (- N))))
  ((zerop N) (list N))
  ((< N 10) (list N))
  (T
   (append
    (F (truncate N 10))
    (list (rem N 10))))))

PM MAIL   Вверх
magelan
Дата 25.10.2011, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


потерял xPath
**


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

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



А таких схемовских штучек в CL нет?

Код

(define (f num)
    (map 
        (lambda (char)
            (string->number (string char))
        )
        (string->list (number->string num))
    )
)


Это сообщение отредактировал(а) magelan - 25.10.2011, 15:10
PM MAIL   Вверх
k0rvin
Дата 28.10.2011, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(magelan @ 25.10.2011,  15:07)
А таких схемовских штучек в CL нет?

Код

(define (f num)
  (map (lambda (char)
         (string->number (string char)))
       (string->list (number->string num))))

это не схемовские штучки, но есть
Код

(defun f (n)
  (loop :for char :across (princ-to-string n)
        :collect (parse-integer (string char))))


но, так же как и в схеме, это менее эффективно, чем вариант VK


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


Шустрый
*


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

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



Код

(defun int>digits (n) 
  (loop for c across (write-to-string n) collect (digit-char-p c)))

> (int>digits 123)
(1 2 3)

--------------------
vk.com/ansicommonlisp
PM MAIL   Вверх
_sg
Дата 22.12.2012, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

(defun int>digits (n) 
  (mapcar #'digit-char-p (coerce (write-to-string n) 'list)))

> (int>digits 123)
(1 2 3)


Добавлено @ 23:21
Код

(defun int>digits (n) 
  (mapcar #'digit-char-p (concatenate 'list (write-to-string n))))

> (int>digits 123)
(1 2 3)


Добавлено @ 23:24
Код

(defun int>digits (n) 
  (mapcar #'digit-char-p (map 'list #'identity (write-to-string n))))

> (int>digits 123)
(1 2 3)


Это сообщение отредактировал(а) _sg - 25.4.2014, 16:50
--------------------
vk.com/ansicommonlisp
PM MAIL   Вверх
_sg
Дата 25.4.2014, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

(defun int>digits (n) 
  (mapcar #'parse-integer (map 'list #'string (write-to-string n))))
> (int>digits 123)
(1 2 3)

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

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

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


 




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


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

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