Главная страница
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.016 c
1-54558
Provodnick
2003-04-06 05:19
2003.04.17
CTRL+ENTER в MEMO


3-54506
Гость
2003-03-30 23:18
2003.04.17
QReport - кто хорошо разбирается?


1-54609
Jaxtor
2003-04-07 10:52
2003.04.17
Access Violation


1-54648
pok
2003-04-08 13:42
2003.04.17
Как получеть доступ к свойствам компонентов дочерной MDI формы


1-54607
Сергей
2003-04-07 16:25
2003.04.17
DLL