> 1 <

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

Яков Замир Кацман

Members


Статус

38 сообщений

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

#7557   2015-04-03 01:00 GMT+3 часа(ов)      
Решил сложить бинарные числа в лисп. Посмотрел решения в интернете.
Мягко сказать странные решения.
Стало одновременно и грустно, и страшно:20, 30, 80 строк!
Вот здесь вменяемое решение:
((lambda (args) (reduce #'+ args)) (list #b1011 #b111001))
Море литературы по Лисп-у и смежным технологиям.

misha

Moderators


Статус

1273 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#7558   2015-04-03 01:23 GMT+3 часа(ов)      
Шутка?

Яков Замир Кацман

Members


Статус

38 сообщений

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

#7559   2015-04-03 17:24 GMT+3 часа(ов)      
Была бы шутка, если бы я нашел решение, вроде такого:
(+ #b1011 #b111001)
на запрос "сложение двоичных чисел в лисп"
Но этого варианта я как раз и не нашел.

отредактировал(а) Яков Замир Кацман: 2015-04-03 17:37 GMT+3 часа(ов)
Море литературы по Лисп-у и смежным технологиям.

Яков Замир Кацман

Members


Статус

38 сообщений

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

#7560   2015-04-03 17:27 GMT+3 часа(ов)      
Процитирую "избранное" - это можно сказать хит:

(defun bin-to-ten (l)
(let* ((rev (reverse l))
(res (loop for a in rev
for b from 0
summing (* a (^ 2 b)))))
res))
(defun f (l)
(if (null l) 0
(- (bin-to-ten (car l)) (f (cdr l)))))
(defun f1 (n)
(if (zerop n) ()
(cons (mod n 2)
(f1 (floor n 2)))))
(defun f2 (l)
(reverse (f1 (f l))))
 
(f2 '((1 1 0 1 0) (1 0 1)))
(1 0 1 0 1)

отредактировал(а) Яков Замир Кацман: 2015-04-03 17:38 GMT+3 часа(ов)
Море литературы по Лисп-у и смежным технологиям.

skelter

Members


Статус

39 сообщений

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

#7561   2015-04-03 20:51 GMT+3 часа(ов)      
В лиспе (CL), как и в математике, нет "бинарных чисел". Есть ридер-макрос #b, который позволяет читать двоичную запись и, например, директива format-а ~B, которая позволяет печатать числа в двоичной записи. Для функции + не имеет значения, как были записаны её аргументы.

Яков Замир Кацман

Members


Статус

38 сообщений

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

#7562   2015-04-04 00:25 GMT+3 часа(ов)      
binary number - a number expressed in binary notation, as 1101.101
(English Collins Dictionary - English Definition & Thesaurus) Все-таки есть "binary number" а математике...
Не имеет значения Т.е. (+ 1010 1111) Лисп поймет что это двоичная запись?
Море литературы по Лисп-у и смежным технологиям.

misha

Moderators


Статус

1273 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#7563   2015-04-04 01:52 GMT+3 часа(ов)      
Используйте префикс #b для записи целых чисел в двоичной системе счисления.

skelter

Members


Статус

39 сообщений

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

#7564   2015-04-04 21:18 GMT+3 часа(ов)      
Цитата
binary number - a number expressed in binary notation, as 1101.101
(English Collins Dictionary - English Definition & Thesaurus) Все-таки есть "binary number" а математике...


Кажется, не путать числа с цифрами учат в начальной школе. Для меня была бы более убедительна ссылка на математический ресурс. Впрочем, если вы желаете определить binary number не как частный вид числа, а как число + способ записи, то имеете право. Правда, в лиспе не предусмотрено составных типов данных, хранящих информацию как о числе, так и о фиксированном способе его представления в виде строки.

misha

Moderators


Статус

1273 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#7565   2015-04-05 02:05 GMT+3 часа(ов)      
Зачем переизобретать битовый массив? Для его создания используйте префикс #*
> 1 <


Онлайн :

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




Реклама на сайте: