Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.17;
Скачать: CL | DM;

Вниз

Кто в muLisp силен? :(   Найти похожие ветки 

 
Palladin ©   (2003-04-02 02:01) [0]

немогу усвоить мышление...

обкритикуйте и укажите где можно оптимизировать, а где вообще глупость
(defun _Swap (Arr I1 I2 %Local:% Res)
(loop (/= i1 0) (setq Res (sublist arr 0 (- i1 1)))
((< 1 2) nil)
)
; (prin1 Res)
; (write-line "")
(setq Res (append res (sublist arr i2 i2)))
; (prin1 Res)
; (write-line "")
(setq Res (append res (sublist arr (+ i1 1) (- i2 1))))
; (prin1 Res)
; (write-line "")
(setq res (append res (sublist arr i1 i1)))
; (prin1 Res)
; (write-line "")
(setq res (append res (sublist arr (+ i2 1) (- (length arr) 1))))
; (prin1 Res)
; (write-line "")
(return res)
)

(defun _Sort (Arr Lo Hi %Local:% l h m)

(write-line "")
(write-string "Params: ")
(prin1 Lo)
(write-string " ")
(prin1 Hi)
(write-line "")

(setq l Lo)
(setq h Hi)

(setq m (nth (truncate (+ l h) 2) Arr))

(loop
(prin1 Arr)
(write-line "")

(loop
((>= (nth l Arr) m) nil)
(setq l (+ l 1))
(write-string " l=") (prin1 l) (write-line " ")
)

(loop
((<= (nth h Arr) m) nil)
(setq h (- h 1))
(write-string " h=") (prin1 h) (write-line " ")
)

(loop
(<= l h)
(setq Arr (_Swap Arr l h))
((> 2 1) nil)
)

((> l h) nil)
)
( (> h Lo) (setq Arr (_Sort Arr Lo h)))
( (< l Hi) (setq Arr (_Sort Arr l Hi)))
(return Arr)
)

(_Sort "(2 9 4 7 1) "0 "4)
;(_swap "(a b c d e f) "1 "5)

это работает не совсем верно... почему то _swap в отдельности нормально меняет элементы в списке, а при отработке _sort: Arr все время наращивается...
у меня уже голова превратилась в универсальный счетчик закрытых и незакрытых скобочек...


 
ShaggyDoc   (2003-04-02 06:34) [1]

Про то, как работает писать не буду, потому что не знаю, что такое muLisp (работаю в Visual Lisp, там подобные функции встроенные).

Что касается счетчика скобок, так это лет 10 вручную не делают. Еще в MultiEdit были макросы, да и в IDE это, естественно, встроено.

Можно разыскать, например, бесплатный VitalLisp Lite, он в отдельном exe и может работать с любыми файлами. Скобки в любом Lisp одинаковые...


 
Palladin ©   (2003-04-02 12:41) [2]

дело не в этом...
дело в постановке задачи
именно на muLisp, именно сортировку (алгоритм без разницы),
ясен пень: там есть sort, но нужно написать самому...
а про скобочки это я так, попутно заметил...



Страницы: 1 вся ветка

Текущий архив: 2003.04.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
1-54588
Jao
2003-04-07 10:28
2003.04.17
совместное использование библиотеки VCL разными приложениями


14-54845
DiamondShark
2003-04-01 13:59
2003.04.17
Кошмар богослова


4-54960
Dennis S
2003-02-14 12:20
2003.04.17
Printer, spooler & задания на печать (LAN)


3-54475
softmaster
2003-03-25 18:26
2003.04.17
Проблема с записями...


3-54430
jocko
2003-03-27 09:40
2003.04.17
Как определить какая запись?