powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Common Lisp (бывший коварный ктото)
132 сообщений из 132, показаны все 6 страниц
Common Lisp (бывший коварный ктото)
    #35743444
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приколитесь над примером:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
(defun mystery (x y)
  (if (null y)
      nil
      (if(eql(car y) x)
          0 
         (let((z (mystery x (cdr y))))
           (and z (+ z  1 ))))))
После таких примеров особо остро чувствую собственную тупость :((
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35744817
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, почти до самого конца было понятно что там творится. А что эта функция должна делать?
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35744818
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy denБлин, почти до самого конца было понятно что там творится. А что эта функция должна делать?

Вы не поняли? ;)
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35744819
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL_Lamer,

Мне понравилось, как он and использует - как проверку на nil
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35744826
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле - пример простой, теперь понял.
После си - подобных языков тяжело привыкать просто.
И еще непривычно, что хвостовая рекурсия превалирует над итерациями.
Обычно ведь как во всех учебниках?
На рекурсию одна страница с дебильным примером на Фибоначи.
Но не в Лисп.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35744830
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL_Lamer,

а разве тут рекурсия хвостовая?
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35744834
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже что возвращает номер элемента x в списке y. Идея листать список через первый элемент и рекурсивную обработку конца понятна, сложно было разобраться что там делает and . Как я понял, он листает список до конца постепенно увеличивая счетчик, и если найдет необходимый элемент, то возвращает z, который будет служить как счетчик вызовов функции(и по совместительству номером элемента в списке). Если же элемент не будет найден, то по цепочке вернутся nil и ответ тоже будет nil. Не догадался что функцию and использовал как проверку на nil
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35744835
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beluginSQL_Lamer,

а разве тут рекурсия хвостовая?

Тут нет.
По этому это не очень эффективная функция.
Я пример к тому привел, что язык красивый.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35744844
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Меня больше впечатлило это:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
(defun memoize (fn)
   (let ((cache (make-hash-table :test #'equal)))
      #'(lambda (&rest args)
         (multiple-value-bind (val win) (gethash args cache)
            (if win
               val
               (setf (gethash args cache)
                      (apply fn args)))))))
Эта функция принимает любую функцию с произвольным количеством входных параметров и одним выходным и возвращает кешированный эквивалент. 8мь строк, а каков эффект
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35744849
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy den,

Там много что впечатляет.
Но я еще до таких функций не дошел.
Стараюсь изучать последовательно.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35744852
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему, книгу будет проще перечитать еще раз, т.к. в самом начале даются такие зубодробительные примеры, которые проще пропустить не сильно разбираясь, а потом с большим багажом знаний все станет понятно
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35745211
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игры разума... блин...
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35745316
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy denПо-моему, книгу будет проще перечитать еще раз, т.к. в самом начале даются такие зубодробительные примеры, которые проще пропустить не сильно разбираясь, а потом с большим багажом знаний все станет понятно

Раньше как вы подходил к этому вопросу :)
Читаю хорошую книгу. Попадается что - то реально тяжелое для понимания - думаю, потом разберусь, когда перечитывать буду. Но до перечитывания ни разу дело у меня не дошло :)
Так что ваш способ мне не подходит :))
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35748773
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL_Lamer пишет:

Он Грем, а не Грехем.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35748783
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL_Lamer пишет:

> Мне понравилось, как он and использует - как проверку на nil

Это ж стандартная идиома.

И не только лиспа.

(and a b c d) возвращает первый nil или d

(or a b c d) возвращает первый (not (null _) или d

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35748784
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL_Lamer пишет:

> На самом деле - пример простой, теперь понял.
> После си - подобных языков тяжело привыкать просто.

Кто тебе запрещает написать точно так же на С ?

> И еще непривычно, что хвостовая рекурсия превалирует над итерациями.
> Обычно ведь как во всех учебниках?

Здесь нет хвостовой рекурсии.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35748786
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
SQL_Lamer пишет:

> Мне понравилось, как он and использует - как проверку на nil

Это ж стандартная идиома.

И не только лиспа.

(and a b c d) возвращает первый nil или d

(or a b c d) возвращает первый (not (null _) или d



В .Net однако так не принято(хоть и можно)
Говорю - же, привыкать не просто.
Другой стиль.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35748788
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv

Здесь нет хвостовой рекурсии.



Да, я и сам про это уточнил.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35748831
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
И не только лиспа.

(and a b c d) возвращает первый nil или d

(or a b c d) возвращает первый (not (null _) или d


Здесь - ничего удивительного. Обычная оптимизация. Вот если-бы правила де-Моргана применялось автоматически - другое дело.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35749188
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton пишет:

> Здесь - ничего удивительного. Обычная оптимизация. Вот если-бы правила
> де-Моргана применялось автоматически - другое дело.

Это не булевские функции.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35805323
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот сдуру засиделся до 4х утра в выходные. Писал программу расстановки ферзей. Честно говоря код не шибко нравится, но для первого раза сойдет. Может у кого есть идеи насчет оптимизации?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
(defun test-queen(place previous-lst)
  (let ((cur-row (+  1  (length previous-lst))) (counter  1 ))
       (dolist (i previous-lst)
         (if (or
                  (= place i)
                  (= place (+ i (- cur-row counter)))
                  (= place (- i (- cur-row counter))))
             (return)
             (setf counter (+  1  counter))))
       (if (= counter cur-row) t nil)))
(defun put-queen(start-pos max-place previous-list)
  (let ((finded)(num))
   (do ((i start-pos ( 1 + i)))
       ((> i max-place))
    (when (test-queen i previous-list)
        (setf finded t)
        (setf num i)
        (return)))
   (if finded (append previous-list (list num))  nil))))

(defun ncheck-remove(max lst)
  (let ((tmplst lst))
     (do ((i  0 ))
      ((>= max (get-last+ 1  tmplst)))
    (setf tmplst (butlast tmplst)))
  tmplst))

(defun get-last+ 1  (lst)
  (if (null lst)  0 
      (+  1  (car (last lst)))))

(defun put-queens (max-nums)
  (let ((cnt  0 ))
    (let (result-list temp-list)
      (do ((i  1 ))
          ((=  0  i))
        (setf temp-list (put-queen i max-nums result-list))
        (when (null (null temp-list))
          (setf i  1 )
          (setf result-list temp-list))
        (when (null temp-list)
          (setf result-list (ncheck-remove max-nums result-list))
          (setf i (get-last+ 1  result-list))
          (setf result-list (butlast result-list)))
        (when (= max-nums (length result-list))
          (print result-list)
          (incf cnt))))
    (print cnt)))
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35805592
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zloy denПисал программу расстановки ферзей.
может так :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
static pos[ 8 ],nr:= 1 
func main; return f8( 8 , 1 )
func f8(n,lin)
  return if(n< 1 ,out(),if(lin> 8 ,.f.,if(f1(lin, 8 -n+ 1 ) .and. f8(n- 1 , 1 ),.t.,f8(n,lin+ 1 ))))
func f1(lin,col)
  local i
  for i= 1  to col- 1 
    if pos[i]=lin .or. abs(lin-pos[i])=abs(col-i); return .f.; end
  end
  pos[col]=lin
  return .t.
func out
  local i,j
  ?nr++; ?''
  for i= 1  to  8 ; for j= 1  to  8 ; ??if(pos[j]=i,'X ','. '); end; ?''; end
  return .f.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35805693
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод

А что за язык? Перл? В приведенном коде не нравится, что четко зафиксирован размер доски. К тому же не совсем разобрался, но похоже что код проверяет вообще все варианты. У меня реализован поиск с возвратом
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35805775
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zloy denА что за язык? Перл? В приведенном коде не нравится, что четко зафиксирован размер доски. К тому же не совсем разобрался, но похоже что код проверяет вообще все варианты. У меня реализован поиск с возвратом
Это клиппер :). Это и есть поиск с возвратом т.е. поиск до первой ошибки и отскок назад - ищет все 92 варианта
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35805807
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модzloy denА что за язык? Перл? В приведенном коде не нравится, что четко зафиксирован размер доски. К тому же не совсем разобрался, но похоже что код проверяет вообще все варианты. У меня реализован поиск с возвратом
Это клиппер :). Это и есть поиск с возвратом т.е. поиск до первой ошибки и отскок назад - ищет все 92 варианта

По-моему, синтаксис у него страшнее чем в лиспе
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35805877
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zloy denПо-моему, синтаксис у него страшнее чем в лиспе
Это и есть преобразованный лисп. Конечно многое потерялось по ходу, но зато процедурно-функциональный.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35805977
любитель_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_модzloy denПо-моему, синтаксис у него страшнее чем в лиспе
Это и есть преобразованный лисп. Конечно многое потерялось по ходу, но зато процедурно-функциональный.
"Многое"?))
Да подумаешь, единство кода и данных, всего навсего)) Собственно, самый главный плюс лиспа и потерялся, по-моему, без этого он и не привлекателен ничем (кроме смайликов, конечно))).

Мое быдлоподелие (вроде работает):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
(defun up-to (n)
	(if (<= n  0 )
		NIL
		(cons n (up-to (- n  1 )))))

(defun fires (n position)
	(if position
		(cons (car position)
			(cons (- (car position) n)
				(cons (+ (car position) n)
					(fires (+ n  1 ) (cdr position)))))
		NIL))
		
(defun free (position n)
	(let ((f (fires  1  position)))
		(delete-if #'(lambda (x) (find x f)) (up-to n))))

(defun solve-a (position n)
	(if (eq (length position) n)
		(format T "~{~a ~}~%" position)
		(dolist (new (free position n))
			(solve-a (cons new position) n))))
	
(defun solve (n)
	(solve-a '() n))
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35806050
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
любитель_Да подумаешь, единство кода и данных, всего навсего))
Это да, это уникально. Но фактически это нужно только для метапрограммирования. А если оно не нужно, то код=данные только мешает.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35806072
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
любитель_Мое быдлоподелие (вроде работает):
Кстати, на этом примерчике видно, что введение массивов вместо списков и итераций вместо рекурсии может быть полезно (об этом еще Дейкстра писал)
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35806548
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод пишет:

> Кстати, на этом примерчике видно, что введение массивов вместо списков и
> итераций вместо рекурсии может быть полезно (об этом еще Дейкстра писал)

А где там проверки что ферзя никто не бъёт ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35806580
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эх, программа почти в 2.5 раза меньше моей:( И работает вроде побыстрее
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35806926
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy den пишет:

> Эх, программа почти в 2.5 раза меньше моей:( И работает вроде побыстрее

Ты и на лиспе такую же шнягу наваять можешь.
Только я что-то не вижу там ни поиска с возвратом, ни определения,
что поле небъётся другими ферзями. Я правда смотрел поверхностно.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35807350
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я думаю что надо привыкнуть просто. Это была моя первая программа на лиспе. Выбрал эту задачу, т.к. в универе было лень делать это задание и сдал чужую. Совесть меня мучала, видите ли :)
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35807562
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv
Только я что-то не вижу там ни поиска с возвратом, ни определения,
что поле небъётся другими ферзями. Я правда смотрел поверхностно.

проверяет можно ли ставить ферзя на строку lin столбец col при условии что предидущие уже стоят
при ответе .f. - переход на след. строку т.е. все варианты не перебираются
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
func f1(lin,col)
  local i
  for i= 1  to col- 1 
    if pos[i]=lin .or. abs(lin-pos[i])=abs(col-i); return .f.; end
  end
  pos[col]=lin
  return .t.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35808065
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy denЯ вот сдуру засиделся до 4х утра в выходные. Писал программу расстановки ферзей. Честно говоря код не шибко нравится, но для первого раза сойдет. Может у кого есть идеи насчет оптимизации?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
(defun test-queen(place previous-lst)
  (let ((cur-row (+  1  (length previous-lst))) (counter  1 ))
       (dolist (i previous-lst)
         (if (or
                  (= place i)
                  (= place (+ i (- cur-row counter)))
                  (= place (- i (- cur-row counter))))
             (return)
             (setf counter (+  1  counter))))
       (if (= counter cur-row) t nil)))
(defun put-queen(start-pos max-place previous-list)
  (let ((finded)(num))
   (do ((i start-pos ( 1 + i)))
       ((> i max-place))
    (when (test-queen i previous-list)
        (setf finded t)
        (setf num i)
        (return)))
   (if finded (append previous-list (list num))  nil))))

(defun ncheck-remove(max lst)
  (let ((tmplst lst))
     (do ((i  0 ))
      ((>= max (get-last+ 1  tmplst)))
    (setf tmplst (butlast tmplst)))
  tmplst))

(defun get-last+ 1  (lst)
  (if (null lst)  0 
      (+  1  (car (last lst)))))

(defun put-queens (max-nums)
  (let ((cnt  0 ))
    (let (result-list temp-list)
      (do ((i  1 ))
          ((=  0  i))
        (setf temp-list (put-queen i max-nums result-list))
        (when (null (null temp-list))
          (setf i  1 )
          (setf result-list temp-list))
        (when (null temp-list)
          (setf result-list (ncheck-remove max-nums result-list))
          (setf i (get-last+ 1  result-list))
          (setf result-list (butlast result-list)))
        (when (= max-nums (length result-list))
          (print result-list)
          (incf cnt))))
    (print cnt)))


Моя:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
(define (queens columns)
  (define (check? n k s)
    (cond ((null? s) #t)
          (else (and (not (= k (car s)))
                     (not (= (abs (- k (car s))) n))
                     (check? (+ n  1 ) k (cdr s)))))
  )
  (define (iter r s k n)
    (cond ((=  0  n) (cons s r))
          (else (append (if (check?  1  (+ k  1 ) s) (iter r (cons (+ k  1 ) s)  0  (- n  1 )) '())
                        (if (< (+ k 1) columns) (iter r s (+ k 1) n) '()))))
  )        
  (iter '() '()  0  columns)
)
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35808347
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)
Моя:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
(define (queens columns)
  (define (check? n k s)
    (cond ((null? s) #t)
          (else (and (not (= k (car s)))
                     (not (= (abs (- k (car s))) n))
                     (check? (+ n  1 ) k (cdr s)))))
  )
  (define (iter r s k n)
    (cond ((=  0  n) (cons s r))
          (else (append (if (check?  1  (+ k  1 ) s) (iter r (cons (+ k  1 ) s)  0  (- n  1 )) '())
                        (if (< (+ k 1) columns) (iter r s (+ k 1) n) '()))))
  )        
  (iter '() '()  0  columns)
)


Схема?
Блин, у всех получается код короче моего. Видимо я совсем законченный быдлокодер
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35808550
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy denGluk (Kazan)
Моя:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
(define (queens columns)
  (define (check? n k s)
    (cond ((null? s) #t)
          (else (and (not (= k (car s)))
                     (not (= (abs (- k (car s))) n))
                     (check? (+ n  1 ) k (cdr s)))))
  )
  (define (iter r s k n)
    (cond ((=  0  n) (cons s r))
          (else (append (if (check?  1  (+ k  1 ) s) (iter r (cons (+ k  1 ) s)  0  (- n  1 )) '())
                        (if (< (+ k 1) columns) (iter r s (+ k 1) n) '()))))
  )        
  (iter '() '()  0  columns)
)


Схема?
Блин, у всех получается код короче моего. Видимо я совсем законченный быдлокодер

Схема :) Не в размере счастье
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35808993
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод пишет:

> проверяет можно ли ставить ферзя на строку lin столбец col при условии
> что предидущие уже стоят
> при ответе .f. - переход на след. строку т.е. все варианты не перебираются

Вот. А должны перебираться. Так вы просто забили в программу одну из
стратегий решения, и ею пользуетесь. А могут быть и другие
стратегии.

Т.е. если вы поставите задачу "найти все возможные расстановки
ферзей", то с помощью вашей программы её будет не решить.

Это, кстати, и есть "поиск с возвратом", а вовсе не то, про что вы говорили.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35809389
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy denЭх, программа почти в 2.5 раза меньше моей:( И работает вроде побыстрее
Сейчас смотрю в исходник этой задачи на Паскале. Если сравнивать клиппер с Паскалем, то последний всё-таки кажется более удобным для понимания.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35809412
любитель_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonСейчас смотрю в исходник этой задачи на Паскале. Если сравнивать клиппер с Паскалем, то последний всё-таки кажется более удобным для понимания.
Большой идеологический вопрос среди педагогов: является ли это плюсом Паскаля? Удобно для понимания, но для _какого_ понимания? Понимание программы неразрывно связано с понятием семантики языка и парадигмы программирования, жесткое привязывание "понимания" человека к конкретной парадигме неизбежно в Паскале... Потому некоторые (и, кстати, одни из лучших) педагогов предпочитают паскалю - лисп, который хоть и менее "удобен для понимания", но возникающее понимание качественно иное.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35809483
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
любитель_ пишет:

> парадигме неизбежно в Паскале... Потому некоторые (и, кстати, одни из
> лучших) педагогов предпочитают паскалю - лисп, который хоть и менее
> "удобен для понимания", но возникающее понимание качественно иное.

Я бы уточнил - схему, а не лисп.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35809918
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv
Т.е. если вы поставите задачу "найти все возможные расстановки
ферзей", то с помощью вашей программы её будет не решить.

находит все 92 возможные решения. стратегий тут всего 2: 1.найти все варианты и отобрать их них допустимые или 2 искать только допустимые. у меня 2.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35809932
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonЕсли сравнивать клиппер с Паскалем, то последний всё-таки кажется более удобным для понимания.
если бы еще и лямбды вычислял с метапрограммами :)
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35810941
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут мы сравниваем разные подходы к программированию. Т.е. для обучения императивному стилю паскаль очень даже хорош, но при этом ломает все представление о программировании и после этого переучиться на функциональный стиль и метапрограммирование очень сложно(знаю по себе)
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35810955
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Я бы уточнил - схему, а не лисп.


Если не секрет-то почему? Схема более академична для чистого ФП?
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35811143
любитель_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zloy denТут мы сравниваем разные подходы к программированию. Т.е. для обучения императивному стилю паскаль очень даже хорош, но при этом ломает все представление о программировании и после этого переучиться на функциональный стиль и метапрограммирование очень сложно(знаю по себе)
В том-то и дело, что в случае с обучением всё не так просто. Сравниваются не "императивная и функциональная парадигмы", а "какая-то определенная парадигма и мультипарадигменность". Например, хаскелл для обучения программированию в целом ничуть не более "удачен", чем паскаль.
В этом суть идеи педагогов, выбирающих лисп: не привязываться в ходе обучения к конкретному стилю вообще, а с испльзуемой в программе парадигмой быть на "ты", вертеть ей по собственному желанию так же свободно, как библиотеками и алгоритмами.
Минусов в этом подходе тоже немало, главный из них сложность, хоть лисп и простой язык, но начинающему всё же проще понять паскаль, и так уж человек устроен, что если хоть что-то начало получаться сразу, то интерес возрастает, а если не начало - то интерес падает...
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35811463
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zloy denТ.е. для обучения императивному стилю паскаль очень даже хорош, но при этом ломает все представление о программировании и после этого переучиться на функциональный стиль и метапрограммирование очень сложно(знаю по себе)
Тогда надо начинать с клиппера - тут тебе и мультипарадигма и метапрограммирование.
и переучиваться не надо :)
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35812028
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy den пишет:

> Если не секрет-то почему? Схема более академична для чистого ФП?

Потому что CommonLisp объёмнее и сложнее.
Схему можно выучить за неделю наверное.
За пару лекций. Она очень простая.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35812033
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
любитель_ пишет:


> Минусов в этом подходе тоже немало, главный из них сложность, хоть лисп
> и простой язык, но начинающему всё же проще понять паскаль, и так уж
> человек устроен, что если хоть что-то начало получаться сразу, то
> интерес возрастает, а если не начало - то интерес падает...

Если сразу учить лисп (схему точнее), то всё проще, я думаю.
А минус в другом - после мощного лиспа людям приходится потом работать
в "приземлённых" ЯП типа java.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35814705
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy den,

Вот на массиве, вроде работает:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
(defun position-p(board depth)
  (let ((res t))
    (dotimes (i depth)
      (if
       (or
        (= (svref board i) (svref board depth))
        (= (+ (svref board i) i) (+ (svref board depth) depth))
        (= (- (svref board i) i) (- (svref board depth) depth)))
       (progn
         (setf res nil)
         (return))))
    res))


(defun pos-search(board depth size)
  (if (= depth size)
      (format t "~a~%" board)
      (progn
        (setf (svref board depth)  0 )
        (loop
         (when (= (svref board depth) size) (return))
         (if(position-p board depth)
            (pos-search board (+ depth  1 ) size))
         (setf (svref board depth)(incf (svref board depth)))))))

Вызывать так например:
Код: plaintext
(next-variant (make-array  8  :initial-element  0 )  0   8 )

зы. Чингис, переименуй топик в "Common Lisp" не в падлу, а то я и неправильно фамилию написал, и вообще..
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35814710
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
(next-variant (make-array  8  :initial-element  0 )  0   8 )

В смысле
Код: plaintext
(pos-search (make-array  8  :initial-element  0 )  0   8 )
Несколько вариантов было, перепутал.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815399
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возник вопрос- есть ли в коммон-лиспе средства шифрования и генерации ключей? Желательно наличие алгоритмов с открытым ключем (типа RSA)
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815420
zloy denВозник вопрос- есть ли в коммон-лиспе средства шифрования и генерации ключей? Желательно наличие алгоритмов с открытым ключем (типа RSA)
Есть
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815438
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy den пишет:

> Возник вопрос- есть ли в коммон-лиспе средства шифрования и генерации
> ключей?

В виде библиотек, наверняка. Есть сервера http чисто на CL, в их
состав что-то должно входить.
Поищите на cliki.net или common-lisp.net
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815461
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
letmegooglethatforyouzloy denВозник вопрос- есть ли в коммон-лиспе средства шифрования и генерации ключей? Желательно наличие алгоритмов с открытым ключем (типа RSA)
Есть

Спасибо конечно.(гуглем я пользоваться умею и чаще всего так и делаю) Просто это было не срочно и хотелось какого-то обсуждения(вдруг кто пользовался и знает об этом из собственного опыта?)
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815474
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy denletmegooglethatforyouzloy denВозник вопрос- есть ли в коммон-лиспе средства шифрования и генерации ключей? Желательно наличие алгоритмов с открытым ключем (типа RSA)
Есть

Спасибо конечно.(гуглем я пользоваться умею и чаще всего так и делаю) Просто это было не срочно и хотелось какого-то обсуждения(вдруг кто пользовался и знает об этом из собственного опыта?)

А вам зачем?
У нас с вами - все это еще далеко впереди, судя по нашему коду ;)
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815493
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL_Lamer
А вам зачем?
У нас с вами - все это еще далеко впереди, судя по нашему коду ;)

А почему вы отвечаете вопросом на вопрос?

А если серьезно, то вчера в голову пришла интересная мысль, теперь думаю ее частично реализовать (думаю это сделать на лиспе-он вполне должен подойти под эту задачу) и в гугль податься
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815508
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy den,
Вот чего - то только - что нагуглил :)
Может, надо, сразу, как вы, сразу в бой?
А то грызу грызу потихоньку ansi common lisp - когда догрызу - неизвестно.
Кстати - очень советую.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815549
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
любитель_Большой идеологический вопрос среди педагогов: является ли это плюсом Паскаля? Удобно для понимания, но для _какого_ понимания? Понимание программы неразрывно связано с понятием семантики языка и парадигмы программирования, жесткое привязывание "понимания" человека к конкретной парадигме неизбежно в Паскале... Потому некоторые (и, кстати, одни из лучших) педагогов предпочитают паскалю - лисп, который хоть и менее "удобен для понимания", но возникающее понимание качественно иное.
Согласен, но для работы с некоторыми предметными областями (базы данных) Лисп не всегда подходит. Как быть в этом случае?
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815593
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL_Lamerzloy den,
Вот чего - то только - что нагуглил :)
Может, надо, сразу, как вы, сразу в бой?
А то грызу грызу потихоньку ansi common lisp - когда догрызу - неизвестно.
Кстати - очень советую.

Диалект или книжку? Я сейчас читаю PCL в переводе. Грэхем тяжеловато идет, если читать с нуля. Я до макросов дойти успел, но уже часть забыл-надо было подкреплять практикой
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815598
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Согласен, но для работы с некоторыми предметными областями (базы данных) Лисп не всегда подходит. Как быть в этом случае?

А почему, если не секрет? Не вижу каких-либо проблем(разве что отсутствие библиотек?)
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815630
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy denSQL_Lamerzloy den,
Вот чего - то только - что нагуглил :)
Может, надо, сразу, как вы, сразу в бой?
А то грызу грызу потихоньку ansi common lisp - когда догрызу - неизвестно.
Кстати - очень советую.

Диалект или книжку? Я сейчас читаю PCL в переводе. Грэхем тяжеловато идет, если читать с нуля. Я до макросов дойти успел, но уже часть забыл-надо было подкреплять практикой

Я начал читать PCL - сначала в переводе любительском, там, на сайте, потом в оригинале попробовал - на мой английский(точнее его отсутствие - тяжеловато идет) - трехэтажные, четырехэтажные фразы.
Пересмотрел - перекачал все мало - мальски известные книги по Лисп, в результате остановился на ANSI Common Lisp.
Я вообще программирование по книгам учу - по специальности не программист.
Так что в хороших книгах по программированию начал разбираться.
Так ANSI Common Lisp - по моему очень и очень удачная книга.
Плюс автор очень эмоционален, видно - чел в предмет влюблен.
Плюс - понятный язык.
Короче, хочу даже печатное издание прикупить.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815643
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL_Lamerzloy denSQL_Lamerzloy den,
Вот чего - то только - что нагуглил :)
Может, надо, сразу, как вы, сразу в бой?
А то грызу грызу потихоньку ansi common lisp - когда догрызу - неизвестно.
Кстати - очень советую.

Диалект или книжку? Я сейчас читаю PCL в переводе. Грэхем тяжеловато идет, если читать с нуля. Я до макросов дойти успел, но уже часть забыл-надо было подкреплять практикой

Я начал читать PCL - сначала в переводе любительском, там, на сайте, потом в оригинале попробовал - на мой английский(точнее его отсутствие - тяжеловато идет) - трехэтажные, четырехэтажные фразы.
Пересмотрел - перекачал все мало - мальски известные книги по Лисп, в результате остановился на ANSI Common Lisp.
Я вообще программирование по книгам учу - по специальности не программист.
Так что в хороших книгах по программированию начал разбираться.
Так ANSI Common Lisp - по моему очень и очень удачная книга.
Плюс автор очень эмоционален, видно - чел в предмет влюблен.
Плюс - понятный язык.
Короче, хочу даже печатное издание прикупить.

Еще плюс забыл - у него после каждой главы упражнения прикольные, с одной стороны простые, с другой - подумать надо ;)
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815666
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL_Lamer
Я вообще программирование по книгам учу - по специальности не программист.
Так что в хороших книгах по программированию начал разбираться.
Так ANSI Common Lisp - по моему очень и очень удачная книга.
Плюс автор очень эмоционален, видно - чел в предмет влюблен.
Плюс - понятный язык.
Короче, хочу даже печатное издание прикупить.

А я себе таки электронную книжку купил-очень доволен. Как раз тот любительский перевод скачал, запихнул в ворд и сделал экспорт в пдф. После того как дочитаю, скачаю ANSI Cоmmon Lisp
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815676
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy denSQL_Lamer
Я вообще программирование по книгам учу - по специальности не программист.
Так что в хороших книгах по программированию начал разбираться.
Так ANSI Common Lisp - по моему очень и очень удачная книга.
Плюс автор очень эмоционален, видно - чел в предмет влюблен.
Плюс - понятный язык.
Короче, хочу даже печатное издание прикупить.

А я себе таки электронную книжку купил-очень доволен. Как раз тот любительский перевод скачал, запихнул в ворд и сделал экспорт в пдф. После того как дочитаю, скачаю ANSI Cоmmon Lisp

Хошь - я тебе первые несколько глав скину(сам для себя переводил)?
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815679
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy denmayton
Согласен, но для работы с некоторыми предметными областями (базы данных) Лисп не всегда подходит. Как быть в этом случае?

А почему, если не секрет? Не вижу каких-либо проблем(разве что отсутствие библиотек?)
Отсутствие общепринятых практик. Видите-ли никто не станет учить студентов работать с БД "сомнительным" способом. Есть классический примеры где Лисп крут. Это различного рода софт, продуцирующий другой софт. Трансляторы и т.п. Есть классические примеры где крут Паскаль и Си (моделирование конечных автоматов любой сложности)ю

Удобство работы с БД на Лисп - это в моём понимании предмет большого спора.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815685
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
А вы преподаватель?
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815699
любитель_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zloy denmayton
Согласен, но для работы с некоторыми предметными областями (базы данных) Лисп не всегда подходит. Как быть в этом случае?

А почему, если не секрет? Не вижу каких-либо проблем(разве что отсутствие библиотек?)
Библиотек полно, нативные для всех основных СУБД + ODBC для чего-то "необычного". Бесплатно (за редкими исключениями, которым есть бесплатные альтернативы).
Сам ковырялся с CLSQL.
Вполне себе прилично и удобно, объявляешь бд-класс, автоматически строится таблица для хранения его экземпляров, работаешь со строками как с объектами, без излишеств, без геморроя... Ну про обычные SQL запросы и удобство обработки ответов и говорить нечего, списки - это кровь лиспа))
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815718
любитель_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonВидите-ли никто не станет учить студентов работать с БД "сомнительным" способом.
Работа с БД в абсолютном большинстве языков программирования заключается в написании SQL-запросов, не имеющих, в свою очередь, никакого отношения к этим языкам. Даже если это EmbeddedSQL.
Лисп почти не исключение, только в нем запросы можно вполне себе нормально замаскировать в S-expressions, что будет ближе к лиспу, чем к SQL, но если этого не хочется или не требуется, можно работать и ровно также, как в остальных языках - строческами с запросиками.
То есть я пока не вижу принципиального отличия работы с БД в лиспе и в каком-либо другом языке, ну, скажем, уже упоминавшейся здесь джаве.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815728
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL_Lamermayton,
А вы преподаватель?
Я вёл практики у студентов. Но я - не преподаватель.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815739
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonSQL_Lamermayton,
А вы преподаватель?
Я вёл практики у студентов. Но я - не преподаватель.

Жалко. У меня глобальный вопрос назрел. Типа - как жить дальше.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815749
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
любитель_Работа с БД в абсолютном большинстве языков программирования заключается в написании SQL-запросов, не имеющих, в свою очередь, никакого отношения к этим языкам. Даже если это EmbeddedSQL.
Лисп почти не исключение, только в нем запросы можно вполне себе нормально замаскировать в S-expressions, что будет ближе к лиспу, чем к SQL, но если этого не хочется или не требуется, можно работать и ровно также, как в остальных языках - строческами с запросиками.
То есть я пока не вижу принципиального отличия работы с БД в лиспе и в каком-либо другом языке, ну, скажем, уже упоминавшейся здесь джаве.
Думаю, что попытка прогрузить в память Лисп-машины хороший курсор эдак строк в миллиона полтора либо положит Лисп-машину на лопатки либо приведёт к чудовищной рециркуляции памяти и работе GC. Здесь я присоединюсь к Никлаусу Вирту в его точке зрения по поводу областей применения Лисп и ФП.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815807
любитель_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonДумаю, что попытка прогрузить в память Лисп-машины хороший курсор эдак строк в миллиона полтора либо положит Лисп-машину на лопатки либо приведёт к чудовищной рециркуляции памяти и работе GC. Здесь я присоединюсь к Никлаусу Вирту в его точке зрения по поводу областей применения Лисп и ФП.
Курсор указывает на ровно одну строку выборки, разве нет? И двигается по выборке туда-сюда, от строки к строке.
Конечно, работа с курсорами тоже различными библиотеками поддерживается, никто не заставляет миллион строк сразу загружать в список. (мне только не очень понятно - когда это может понадобиться обрабатывать самому, из программы-клиента СУБД, миллион строк?)
Да и про ФП в целом этот пример ничего не говорит: lazy evaluations, по идее, решают эту проблему на раз.
Я, конечно, не отрицаю понятия "область применения лиспа и ФП", лисп далеко не всемогущ, но вот уж что вам в работе с БД не нравится, никак понять не могу)))
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815857
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonдля работы с некоторыми предметными областями (базы данных) Лисп не всегда подходит. Как быть в этом случае?
Можно сделать БД из списков
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815864
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модmaytonдля работы с некоторыми предметными областями (базы данных) Лисп не всегда подходит. Как быть в этом случае?
Можно сделать БД из списков

Думаю, не о том речь совсем :)
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815880
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonУдобство работы с БД на Лисп - это в моём понимании предмет большого спора.
Все дело в МД. В императивных языках массив=таблица РБД - полное совпадение. Для лиспа БД должна состоять не из таблиц, а из списков. И такие системы есть, т.е. лисп+собственная субд. И никакого SQL там не надо по понятной причине - лисп мощнее SQL.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35815951
любитель_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_модВсе дело в МД. В императивных языках массив=таблица РБД - полное совпадение. Для лиспа БД должна состоять не из таблиц, а из списков. И такие системы есть, т.е. лисп+собственная субд. И никакого SQL там не надо по понятной причине - лисп мощнее SQL.
Интересно то, что в ADODB класс Recordset гораздо ближе к списочной модели данных (список коллекций), нежели к массиву))
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35816060
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton пишет:

> Согласен, но для работы с некоторыми предметными областями (базы данных)
> Лисп не всегда подходит. Как быть в этом случае?

Великолепно подходит и используется.

Даже там есть свой диалект SQL - SQL, записываемый S-выражениями.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35816068
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL_Lamer пишет:

>
> Хошь - я тебе первые несколько глав скину(сам для себя переводил)?

SQL_Lamer, ты лучше в проекте PCL поучаствуй.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35816096
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton пишет:

> Отсутствие общепринятых практик. Видите-ли никто не станет учить
> студентов работать с БД "сомнительным" способом. Есть классический
> примеры где Лисп крут. Это различного рода софт, продуцирующий другой
> софт. Трансляторы и т.п. Есть классические примеры где крут Паскаль и Си
> (моделирование конечных автоматов любой сложности)ю


mayton, вы абсолютно неправы. CL - язык универсальный, общего употребления.
На нём можно делать вообще всё, что угодно. По крайней мере он ничем
не хуже явы или Сшарпа. А по моему личному мнению так в 200 раз лучше.

Относительно БД - для каждого из языков есть некий API, который работает
с БД. То же самое есть и в комон лиспе, библ. CL-SQL, она ни хорошая,
ни прохая, а просто API, по нему можно ходить в БД. И всё.
Соответственно, и работа с БД ни удобная, и ни неудобная, а просто работа
с БД, так же, как в Java или сишарпе. Но поскольку лисп - язык
крупный, мощный, то и работа с БД в нём достаточно удобна.
-- коннект к БД
-- Одним вызовом выполняешь запрос и получаешь результат.

и в общем всё.

Есть ещё куча наворотов в связи с встроенным S-expr-SQL,
но это - на любителя, в общем, дань традиции лисперов всё писать
в S-выражениях. Я лично не думаю, что это хорошо, до тех
пор, пока я не пишу макросы, пораждающие SQL, но это можно
и не использовать.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35816099
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL_Lamer

Хошь - я тебе первые несколько глав скину(сам для себя переводил)?

Хочу:)
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35816100
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
любитель_ пишет:

> Библиотек полно, нативные для всех основных СУБД + ODBC для чего-то
> "необычного". Бесплатно (за редкими исключениями, которым есть
> бесплатные альтернативы).

Ну, не так их и много, к сожалению. Вот с этим проблема есть.
Но там есть линк к ODBC.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35816107
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL_Lamer пишет:

> Жалко. У меня глобальный вопрос назрел. Типа - как жить дальше.
и чего думаешь ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35816110
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton пишет:

> Думаю, что попытка прогрузить в память Лисп-машины хороший курсор эдак
> строк в миллиона полтора либо положит Лисп-машину на лопатки либо

Есть и построчная выборка, в стиле FETCH. Так что успокойтесь.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35816127
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод пишет:

> Все дело в МД. В императивных языках массив=таблица РБД - полное
> совпадение. Для лиспа

Вот, вот конень недопонимания лиспа. Лисп - это НЕ ЕСТЬ что-то
альтернативное императивным языкам. Лисп - язык гибридный
и мультипарадигменный, вы можете в нём писать такие же
императивные программы, как и в С. Можете - объектно=ориентированные,
можете - функциональные.

БД должна состоять не из таблиц, а из списков.

Так таблица и есть список записей.

И
> такие системы есть, т.е. лисп+собственная субд. И никакого SQL там не
> надо по понятной причине - лисп мощнее SQL.

Равномощен. Не мощнее.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35816250
GYGY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonлюбитель_Большой идеологический вопрос среди педагогов: является ли это плюсом Паскаля? Удобно для понимания, но для _какого_ понимания? Понимание программы неразрывно связано с понятием семантики языка и парадигмы программирования, жесткое привязывание "понимания" человека к конкретной парадигме неизбежно в Паскале... Потому некоторые (и, кстати, одни из лучших) педагогов предпочитают паскалю - лисп, который хоть и менее "удобен для понимания", но возникающее понимание качественно иное.
Согласен, но для работы с некоторыми предметными областями (базы данных) Лисп не всегда подходит. Как быть в этом случае?

Может я конечно под впечатлением (т.к. нахожусь в стадии глубокого погружения). Но ИМХО - для работы с БД как раз таки подходит. А из-за мультипарадигмезности - можно в принципе иметь эффективное решение для наверно любой конкретной ситуации.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35816276
GYGY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Опять же ИМХО - "свежее" изобретение от MS - LINQ - ничего не напоминает?
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35816299
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GYGYОпять же ИМХО - "свежее" изобретение от MS - LINQ - ничего не напоминает?

Ага, я об этом говорил-но мне сотрудники сказали что если и так все туда движется, то зачем учить этот непонятный лисп, который никому не нужен? Все равно будет Lisp.NET. Видимо, у меня с ними разные взгляды на жизнь
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35816354
GYGY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35816448
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
любитель_Интересно то, что в ADODB класс Recordset гораздо ближе к списочной модели данных (список коллекций), нежели к массиву))
А имена колонок куда деть ? Понятно что таблица - это список строк, но строки имеют номер, а элемент списка - нет. Вообщем МД разные. Таблицы педполагают циклы, списки - рекурсию ну и т.д.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35816461
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv
Относительно БД - для каждого из языков есть некий API, который работает
с БД.
Да не д.б. никакого API, д.б. как в pl/sql - таблицы - родные типы данных, SQL - родные операторы. И для лиспа такие системы есть, просто списки хранятся в БД постоянно, а не только в ОП.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35816479
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivЛисп - язык гибридный
Это его так изуродовали
MasterZivРавномощен. Не мощнее.
Мощнее лиспа не м.б., а вот сужение вполне возможно
зы у лиспа своя МД - списки, и вводить для него другую МД просто не нужно. Вы ведь не будете вместо fetch использовать car-cdr и вместо цикла рекурсию :)
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35816505
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модmaytonУдобство работы с БД на Лисп - это в моём понимании предмет большого спора.
Все дело в МД. В императивных языках массив=таблица РБД - полное совпадение. Для лиспа БД должна состоять не из таблиц, а из списков. И такие системы есть, т.е. лисп+собственная субд. И никакого SQL там не надо по понятной причине - лисп мощнее SQL.

Конечно мощнее :) на нем факториал можно сосчитать
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35816532
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gluk (Kazan)Конечно мощнее :) на нем факториал можно сосчитать
не в том дело: на лиспе можно написать интепретатор sql, а наоборот нет
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35816542
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модGluk (Kazan)Конечно мощнее :) на нем факториал можно сосчитать
не в том дело: на лиспе можно написать интепретатор sql, а наоборот нет

Но это совсем не значет, что он более пригоден для обработки данных в СУБД
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35816580
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gluk (Kazan)Но это совсем не значет, что он более пригоден для обработки данных в СУБД
Это смотря какой СУБД. Для РСУБД - через API на равных с другими, собственной списковой СУБД - имхо лучше.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35816816
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модGluk (Kazan)Но это совсем не значет, что он более пригоден для обработки данных в СУБД
Это смотря какой СУБД. Для РСУБД - через API на равных с другими, собственной списковой СУБД - имхо лучше.

Я не очень верю в списковые СУБД
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35816869
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модА имена колонок куда деть ? Понятно что таблица - это список строк, но строки имеют номер, а элемент списка - нет. Вообщем МД разные. Таблицы педполагают циклы, списки - рекурсию ну и т.д.
Ерунда.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35816975
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод пишет:

> Мощнее лиспа не м.б., а вот сужение вполне возможно
> зы у лиспа своя МД - списки, и вводить для него другую МД просто не
> нужно.

Вы язык-то знаете ? Там дофига всего, окромя списков.

Объекты, например. Вот можно было бы из строк таблицы делать
объекты на лету, и возвращать.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35817213
любитель_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivВот можно было бы из строк таблицы делать
объекты на лету, и возвращать.
Объекты из строк? Их есть у нас!
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35817269
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy denSQL_Lamer

Хошь - я тебе первые несколько глав скину(сам для себя переводил)?

Хочу:)

Отправил.
Проверь ящик.
Там с моим комментарием ознакомься перед прочтением :))

MasterZivты лучше в проекте PCL поучаствуй.
Поучаствую. Начал тогда одну главу - надо закончить как - то.

MasterZivи чего думаешь ?
Нужен мне совет опытного педагога и программиста в одном лице.
Вот, что думаю.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35817305
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL_Lamer пишет:

> Нужен мне совет опытного педагога и программиста в одном лице.
> Вот, что думаю.

Половину совета могу дать.
Как опытный программист.
Другую половину ... ну не знаю, могу напр. спросить у отца,
он и то, и другое.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35817306
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
SQL_Lamer пишет:

> Нужен мне совет опытного педагога и программиста в одном лице.
> Вот, что думаю.

Половину совета могу дать.
Как опытный программист.
Другую половину ... ну не знаю, могу напр. спросить у отца,
он и то, и другое.


Тогда сформулирую проблему, и напишу письмо, завтра, думаю.
Спасибо.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35819073
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gluk (Kazan)Я не очень верю в списковые СУБД
А чего тут верить - они существуют. Другое дело их распространненость.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35819080
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivВы язык-то знаете ? Там дофига всего, окромя списков.
А зачем в лиспе "дофига всего" ? Чистый лисп самодостаточен.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35819083
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonЕрунда.
Полностью согласен :)
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35819142
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модGluk (Kazan)Я не очень верю в списковые СУБД
А чего тут верить - они существуют. Другое дело их распространненость.

БД существуют
разные ... иерархические, сетевые ... с навигационным доступом, с пофигационным, не суть

а СУБД (в моем понимании) это на 30% транзакционность и на 70% оптимизатор
как у этих списковых СУ БД (примеры кстати не помешают) дела с оптимизатором ???
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35819387
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)
БД существуют
разные ... иерархические, сетевые ... с навигационным доступом, с пофигационным, не суть

а СУБД (в моем понимании) это на 30% транзакционность и на 70% оптимизатор
как у этих списковых СУ БД (примеры кстати не помешают) дела с оптимизатором ???
Не втом дело. Есть три слона на который строится любая высокопроизводительная СУБД. Это BTree, HashTable, LRU-List (в скобках замечу, что LRU-list может содержать в себе hashtable но это сейчас не важно). Если эти сущности применяются в полном объёме и применяются эффективно - то БД летает как птица. Если БД "переливает" данные из "пустого в порожнее", клонирует без смысла участки памяти (строки), сортирует и ранжирует не подготовленные для этого данные - то всё тормозит и лагает. И покупка четырёхголовых Итаниумов со 256 Гигами оперативы практически ничего не решает. Ибо storage-layer реализован изначально неправильно. Он не готов для обработки таких объёмов данных. И с ЛиспОм та-же история. Если он реализован - как тупой клиент к СУБД то у меня нет никаких вопросов к нему. Он не будет лучше того-же Pascal на фетчинге данных. Если он (Лисп) ПРЕТЕНДУЕТ на нечто большее. Типа на интеллектуальное кеширование или свой собственный storage-layer, тогда мне будет оооочень интересно где и как реализованы три слона. И как я могу ими управлять и использовать? Как я могу их оптимизировать и оценивать эффективность их использования?
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35819405
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gluk (Kazan)как у этих списковых СУ БД (примеры кстати не помешают) дела с оптимизатором ???
видел только самоделки. оптимизация работы со списками д.б. в самом интерпретаторе лиспа имхо. т.е. работа со списками в БД ничем не отличается от работы с "обычными" списками.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35819545
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модGluk (Kazan)как у этих списковых СУ БД (примеры кстати не помешают) дела с оптимизатором ???
видел только самоделки. оптимизация работы со списками д.б. в самом интерпретаторе лиспа имхо. т.е. работа со списками в БД ничем не отличается от работы с "обычными" списками.

Об том и речь. У меня не повернется язык назвать это СУБД.
Если для озвученных выше китов более менее понятно как оптимизировать запросы, то для списков ... не понятно в общем как запросы к спискам оптимизировать
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35819588
любитель_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonИ с ЛиспОм та-же история. Если он реализован - как тупой клиент к СУБД то у меня нет никаких вопросов к нему. Он не будет лучше того-же Pascal на фетчинге данных. Если он (Лисп) ПРЕТЕНДУЕТ на нечто большее. Типа на интеллектуальное кеширование или свой собственный storage-layer, тогда мне будет оооочень интересно где и как реализованы три слона. И как я могу ими управлять и использовать? Как я могу их оптимизировать и оценивать эффективность их использования?
Не очень понял вопросы и вообще о чем идет речь.
Лисп - это язык, он не является ни клиентом СУБД ни тем более самой СУБД, клиентами СУБД являются программы; да, они могут быть написаны на лиспе, могут быть тупыми, могут быть умными; да, СУБД тоже могут быть написаны на Лиспе с реализацией всех перечисленных "китов", ведь это тьюринг-полный язык.
Да, разумеется, если программа на Лиспе выступает в роли тупого клиента СУБД, то на фетчинге данных она абсолютно идентична Паскалю, и Си, и Си++ и всем остальным языкам программирования, потому что непосредственно фетчингом занимается не сам клиент, а скорее драйвер или даже сервер (СУБД); да, разумеется, лисп претендует на язык, в котором возможно реализовать кеширование запросов, так же как и любой другой язык программирования; Вы можете управлять и использовать эти механизмы, реализуя соответствующие алгоритмы (собственно, так же как и на других языках).

В общем, как-то странно предъявлять ЯЗЫКУ требования по реализации механизмов, свойственных СУБД.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35819628
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
любитель_В общем, как-то странно предъявлять ЯЗЫКУ требования по реализации механизмов, свойственных СУБД.
Тогда прошу прощения. Просто мне на секунду показалось, что кто-то в топике проводит аналогии между СУБД и Lisp-машиной.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35819644
любитель_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonлюбитель_В общем, как-то странно предъявлять ЯЗЫКУ требования по реализации механизмов, свойственных СУБД.
Тогда прошу прощения. Просто мне на секунду показалось, что кто-то в топике проводит аналогии между СУБД и Lisp-машиной.
Насколько я понял, речь идет об абстрактной СУБД (абстрактной потому что реальных примеров не приведено), моделью данных которой являются некие таинственные "списки" (таинственные потому что они тоже разные бывают, список в лиспе и список в хаскелле - две большие разницы, например). Так что речь эта какая-то мутная и загадочная, для меня по крайней мере %))
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35819660
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
любитель_maytonлюбитель_В общем, как-то странно предъявлять ЯЗЫКУ требования по реализации механизмов, свойственных СУБД.
Тогда прошу прощения. Просто мне на секунду показалось, что кто-то в топике проводит аналогии между СУБД и Lisp-машиной.
Насколько я понял, речь идет об абстрактной СУБД (абстрактной потому что реальных примеров не приведено), моделью данных которой являются некие таинственные "списки" (таинственные потому что они тоже разные бывают, список в лиспе и список в хаскелле - две большие разницы, например). Так что речь эта какая-то мутная и загадочная, для меня по крайней мере %))

Дык об том и речь, что СУБД надо строить на базе того, что известно как оптимизировать.
А уж на LISP-е аль на васике, мне в принципе фиолетово
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35821358
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gluk (Kazan)Если для озвученных выше китов более менее понятно как оптимизировать запросы, то для списков ... не понятно в общем как запросы к спискам оптимизировать
Да точно также - индексация, управление памятью ну и т.д. все что делает любая СУБД. Просто все это прозрачно для программера - для него есть только списки постоянного хранения.
зы по сути с точки зрения проммера любая СУБД - это DDL+DML, а вовсе не 3 кита
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35821816
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод
Да точно также - индексация, управление памятью ну и т.д. все что делает любая СУБД.


А если нет разницы ... то какая нафих разница на чем эта СУБД написана
и при чем тут вообще мифическая "СУБД на списках". Да хоть на сепульках, если работает хорошо

_мод
Просто все это прозрачно для программера - для него есть только списки постоянного хранения.
зы по сути с точки зрения проммера любая СУБД - это DDL+DML, а вовсе не 3 кита

Видимо я просто не ЛЮБОЙ программер
плевать мне есть в СУБД DDL-и или нет (мне и на SQL-то по большому счету покласть)

Мне нуна шобы СУБД эффективно и надежно (в том числе изолированно) обрабатывала мое декларативные запросы

Если есть такая на лиспе ... велкам
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35821862
любитель_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_модДа точно также - индексация, управление памятью ну и т.д. все что делает любая СУБД.
Если модель данных - лисповые списки, т.е. гетерогенные списки, элементами которых может быть всё что угодно, любые другие списки и т.д. (т.е. это даже сложнее чем иерархическая модель, там элементы данных хоть и являются сложными структурами, но хотя бы одинаковыми в рамках одной "таблицы"), то никакая индексация тут уже не подойдет, индексам необходимо что-то заведомо имеющееся у всех элементов данных.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35822178
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
любитель_Если модель данных - лисповые списки, т.е. гетерогенные списки, элементами которых может быть всё что угодно, любые другие списки и т.д. (т.е. это даже сложнее чем иерархическая модель, там элементы данных хоть и являются сложными структурами, но хотя бы одинаковыми в рамках одной "таблицы"), то никакая индексация тут уже не подойдет, индексам необходимо что-то заведомо имеющееся у всех элементов данных.
А представьте, что такая СУБД каким-то образом индексирует вообще все, что в нее попадает :). Но дело не в этом. Если лисп использовать как обычный ЯП черех API СУБД, то все преимущества лиспа изчезают - любой 4GL лучше. А вот попытаться эффективно реализовать МД лиспа - задача благородная и возможно перспективная.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35822343
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модлюбитель_Если модель данных - лисповые списки, т.е. гетерогенные списки, элементами которых может быть всё что угодно, любые другие списки и т.д. (т.е. это даже сложнее чем иерархическая модель, там элементы данных хоть и являются сложными структурами, но хотя бы одинаковыми в рамках одной "таблицы"), то никакая индексация тут уже не подойдет, индексам необходимо что-то заведомо имеющееся у всех элементов данных.
А представьте, что такая СУБД каким-то образом индексирует вообще все, что в нее попадает :). Но дело не в этом. Если лисп использовать как обычный ЯП черех API СУБД, то все преимущества лиспа изчезают - любой 4GL лучше. А вот попытаться эффективно реализовать МД лиспа - задача благородная и возможно перспективная.

Возможно перспективная, кто-же спорит
Я так понимаю примеров синиц в руках не будет ???

P.S. Тут кстати, в соседней ветке один товарищь тоже про метаязыковых журавлей мощно задвигает
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35822809
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gluk (Kazan)Я так понимаю примеров синиц в руках не будет ???
Я ж говорил - видел очень давно одну самоделку, вполне работоспособную. Наверняка есть эспериментальные разработки. Чесно говоря, табличные СУБД и соотв. языки мне ближе - практичнее. Но вот сомневаюся я что человек хранит информацию в табличном виде :)
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35822814
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gluk (Kazan)P.S. Тут кстати, в соседней ветке один товарищь тоже про метаязыковых журавлей мощно задвигает
клиппер бы посмотрел и перестал бы задвигать :)
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35835957
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оффтоп:
Перечитывал про Роберта Морриса rtm , и с удивлением увидел что "коварный Грэхем" и там сыграл не последнюю роль:)
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35837598
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy denОффтоп:
Перечитывал про Роберта Морриса rtm , и с удивлением увидел что "коварный Грэхем" и там сыграл не последнюю роль:)

Там очень много букав :)

Ты уже познакомился с чудесной функцией symbol-function ?
Учерась ее обнаружил, и она меня немало порадовала :)
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35844244
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не, читаю пока PCL. Насчент rtm-у меня комплекс неполноценности, в моем возрасте люди уже писали черви, которые половину сети положили:)
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35844260
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy denНе, читаю пока PCL. Насчент rtm-у меня комплекс неполноценности, в моем возрасте люди уже писали черви, которые половину сети положили:)

Ну тогда мне только убиться об стену осталось(это я насчет возраста) :))
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35844285
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL_Lamerzloy denНе, читаю пока PCL. Насчент rtm-у меня комплекс неполноценности, в моем возрасте люди уже писали черви, которые половину сети положили:)

Ну тогда мне только убиться об стену осталось(это я насчет возраста) :))

Черт, не думал что кто-то в здравом рассудке сидит в субботу вечером на форуме(себя я таким не считаю:) Но почитать про него стоит, очень интересно имхо.
З.Ы. спасибо за перевод, буду читать после pcl
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35844487
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy den пишет:

Писал программу расстановки
> ферзей. Честно говоря код не шибко нравится, но для первого раза сойдет.
> Может у кого есть идеи насчет оптимизации?
>
> (defun test-queen(place previous-lst)

У меня дошли руки это прочитать и разобрать. Это ужас какой-то,
это не лисп. Это так пишут императивные программисты, только что
слезшие с какого-нибудь фортрана.

Да, и я нифига не понял алгоритм, где ж там чего делается.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35845324
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
zloy den пишет:

Писал программу расстановки
> ферзей. Честно говоря код не шибко нравится, но для первого раза сойдет.
> Может у кого есть идеи насчет оптимизации?
>
> (defun test-queen(place previous-lst)

У меня дошли руки это прочитать и разобрать. Это ужас какой-то,
это не лисп. Это так пишут императивные программисты, только что
слезшие с какого-нибудь фортрана.

Да, и я нифига не понял алгоритм, где ж там чего делается.


Да примерно так и есть, только еще и не слез. Чего-то у меня этот алгоритм не идет нормально :(
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35845372
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy den,

Тут пример разбери может?
Там на с++ и на хаскель реализация. И на руби, по моему.
Вообще там у товарища варит котелок, судя по всему, есть интерестные вещи.
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #35845464
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL_Lamer пишет:

> Тут <http://www.lymar.ru/?p=12> пример разбери может?

Вот на лиспе. не знаю как про алгоритм, но хоть стиль программирования
хороший, лисповый.

www.gia.ist.utl.pt/~aml/debugging-allegro.ps
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Common Lisp (бывший коварный ктото)
    #37123203
Yulch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL_Lamer,

Привет. Я вот сегодня увидела твой вариант решение задачи "8 ферзей" с использованием массивов.
Ты не могу бы мне выслать пояснения к ней?Мы недавно начали изучать лисп и помощь со стороны не была бы лишней.
Мог бы написать комментарии к строкам задачки? Заранее большое спасибо за помощь!

(defun position-p(board depth)
(let ((res t))
(dotimes (i depth)
(if
(or
(= (svref board i) (svref board depth))
(= (+ (svref board i) i) (+ (svref board depth) depth))
(= (- (svref board i) i) (- (svref board depth) depth)))
(progn
(setf res nil)
(return))))
res))


(defun pos-search(board depth size)
(if (= depth size)
(format t "~a~%" board)
(progn
(setf (svref board depth) 0)

(loop
(when (= (svref board depth) size) (return))
(if(position-p board depth)
(pos-search board (+ depth 1) size))
(setf (svref board depth)(incf (svref board depth)))))))


vuzov:
(pos-search (make-array 8 :initial-element 0) 0 8)
...
Рейтинг: 0 / 0
Common Lisp (бывший коварный ктото)
    #37123664
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет гробокопателям :)
Я уж думал "Сами знаете кто" вернулся

P.S.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
(define (queens columns)
  (define (check? n k s)
    (cond ((null? s) #t)
          (else (and (not (= k (car s)))
                     (not (= (abs (- k (car s))) n))
                     (check? (+ n  1 ) k (cdr s)))))
  )
  (define (iter r s k n)
    (cond ((=  0  n) (cons s r))
          (else (append (if (check?  1  (+ k  1 ) s) (iter r (cons (+ k  1 ) s)  0  (- n  1 )) '())
                        (if (< (+ k 1) columns) (iter r s (+ k 1) n) '()))))
  )        
  (iter '() '()  0  columns)
)

P.P.S. Не буду объяснять как работает :)
...
Рейтинг: 0 / 0
132 сообщений из 132, показаны все 6 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Common Lisp (бывший коварный ктото)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]