Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.04.17;
Скачать: [xml.tar.bz2];

Вниз

Кто в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
1-54596
Separator
2003-04-07 11:20
2003.04.17
Отображение разноцветных строк в TTextListBox


3-54422
MaxV
2003-04-01 13:59
2003.04.17
Как открыть паролированную таблицу Paradox?


7-54931
AllOver2003
2003-02-19 14:32
2003.04.17
Определение видеопамяти


14-54829
Дмитрий К.К.
2003-03-31 11:47
2003.04.17
Именинники 29 марта


3-54529
Yuraz
2003-04-01 09:24
2003.04.17
Просмотр данных о функциях в Oracle.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский