Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу) - Страница 144
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу)

Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу)

Ответ
Поиск в этой теме
Непрочитано 20.07.2008, 20:12 1 |
Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу)
Red Nova
 
ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Торонто
Регистрация: 23.10.2007
Сообщений: 1,990

Со школы не ладится у меня с программированием. Все предметы щелкал, а на экзамене по информатике (Visual foxpro) программку типа суммирования столбцов списал у соседа (это уже в университете).
Не смотря на эте намерен научится писать программы для Автокада на лиспе, скачал книгу Хювенена, несколько примеров создания программ, но после получасового “смотрения” таких книг мое мышление явно притормаживает.
Решил пойти другим путем.
Нашел самый короткий лисп из моей коллекции, и прошу программистов с этого форума пошагово объяснить какой символ что означает. Надеюсь на вашу помощь.


Код:
[Выделить все]
(defun c:make-blocks-explodeable (/ adoc)
  (vl-load-com)
  (vla-startundomark
    (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
    ) ;_ end of vla-startundomark
  (vlax-for blk_def (vla-get-blocks adoc)
    (if (and (equal (vla-get-isxref blk_def) :vlax-false)
             (equal (vla-get-islayout blk_def) :vlax-false)
             ) ;_ end of and
      (vl-catch-all-apply '(lambda () (vla-put-explodable blk_def :vlax-true)))
      ) ;_ end of if
    ) ;_ end of vlax-for
  (vla-endundomark adoc)
  (princ)
  ) ;_ end of defun
_____________________________________________________________________________________________________________

Прошло много лет и топик теперь представляет из себя площадку для обучения азов программирования для многих начинающих.
Так что начинающие лиспогрызы приветствуются .
__________________
Блог

Последний раз редактировалось Red Nova, 12.07.2017 в 05:43.
Просмотров: 2049510
 
Непрочитано 12.01.2016, 17:05
#2861
Inferi


 
Регистрация: 14.05.2015
Сообщений: 33


Код:
[Выделить все]
(defun c:test ()
 (eea-abc
  "
***************************************************************

by ElpanovEvgeniy

mail: elpanov@gmail.com
web: www.elpanov.com

***************************************************************

Program for displaying any text near the cursor on the screen.

Date of creation 01.02.2006
Last edition 06.02.2008

arguments:

str - a text string to display
cb - the background color
cf - color of text

***************************************************************
" 7
  5
 )
)
(defun eea-abc (str cb cf / *ERROR* C GR I IL INT IY L L-ST MX S ST X Y)
               ;|
*****************************************************************************************

by ElpanovEvgeniy

mail: elpanov@gmail.com
web: www.elpanov.com

*****************************************************************************************

Программа для отображения любого текста возле курсора на экране. 

Дата создания 01.02.2006
последняя редакция 06.02.2008

аргументы:

str - текстовая строка для отображения
cb - цвет фона
cf - цвет текста

*****************************************************************************************

Program for displaying any text near the cursor on the screen.

Date of creation 01.02.2006
Last edition 06.02.2008

arguments:

str - a text string to display
cb - the background color
cf - color of text

*****************************************************************************************

(eea-abc
 " !\"#$%&'()*+,-./0123456789:;<=>?@
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`
abcdefghijklmnopqrstuvwxyz{|}~‚„…‰‹‘’“”•–—™¤¦§Ё©«¬*®°±·ё»
АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"
 7
 5
)

(eea-abc "0.0" 1 2)

(eea-abc
"
(setq l (append (list (list -3. (setq i (1+ i)))
 (list (+ x 3.) i)
 (list -3. (setq i (1+ i)))
 (list (+ x 3.) i)
 (list -2. (setq i (1+ i)))
 (list (+ x 2.) i)
 (list 0. (setq i (1+ i)))
 (list x i)
 ) ;_ list
 l
 ) ;_ append
 il nil
)
"
7 5
)

(setq str(getstring t "\n Введите строку:\t"))
(eea-abc str 7 5)

*****************************************************************************************
|;
 (defun *ERROR* (m) (REDRAW) (princ))
 (while (setq i (VL-STRING-POSITION 10 str))
  (setq il  (cons (substr str 1 i) il)
        str (substr str (+ i 2))
  )
 )
 (setq il   (cons str il)
       int  nil
       i    0
       y    0
       st   '(" "   "\t"  "!"   "\""  "#"   "$"   "%"   "&"   "'"   "("   ")"   "*"   "+"   ","   "-"   "."   "/"   "0"   "1"   "2"   "3"   "4"
              "5"   "6"   "7"   "8"   "9"   ":"   ";"   "<"   "="   ">"   "?"   "@"   "A"   "B"   "C"   "D"   "E"   "F"   "G"   "H"   "I"   "J"
              "K"   "L"   "M"   "N"   "O"   "P"   "Q"   "R"   "S"   "T"   "U"   "V"   "W"   "X"   "Y"   "Z"   "["   "\\"  "]"   "^"   "_"   "`"
              "a"   "b"   "c"   "d"   "e"   "f"   "g"   "h"   "i"   "j"   "k"   "l"   "m"   "n"   "o"   "p"   "q"   "r"   "s"   "t"   "u"   "v"
              "w"   "x"   "y"   "z"   "{"   "|"   "}"   "~"   "‚"   "„"   "…"   "‰"   "‹"   "‘"   "’"   "“"   "”"   "•"   "–"   "—"   "™"   "¤"
              "¦"   "§"   "Ё"   "©"   "«"   "¬"   "*"   "®"   "°"   "±"   "·"   "ё"   "»"   "А"   "Б"   "В"   "Г"   "Д"   "Е"   "Ж"   "З"   "И"
              "Й"   "К"   "Л"   "М"   "Н"   "О"   "П"   "Р"   "С"   "Т"   "У"   "Ф"   "Х"   "Ц"   "Ч"   "Ш"   "Щ"   "Ъ"   "Ы"   "Ь"   "Э"   "Ю"
              "Я"   "а"   "б"   "в"   "г"   "д"   "е"   "ж"   "з"   "и"   "й"   "к"   "л"   "м"   "н"   "о"   "п"   "р"   "с"   "т"   "у"   "ф"
              "х"   "ц"   "ч"   "ш"   "щ"   "ъ"   "ы"   "ь"   "э"   "ю"   "я"
             )
       l-st '((" ")
              ("\t")
              ("!" 39 41 48 50 66 68 75 77 83 87 92 96 101 105 111 113)
              ("\"" 86 88 95 97 104 106 91 93 100 102 109 111)
              ("#" 113 115 104 106 86 88 77 79 68 70 50 52 41 43 38 40 47 49 55 62 65 67 74 76 83 85 91 98 101 103 110 112)
              ("$" 104 106 21 23 30 32 50 52 38 42 46 48 59 61 67 69 75 77 83 85 91 93 100 102 110 114 120 122 129 131)
              ("%" 51 53 42 44 31 34 39 41 48 50 58 61 46 47 55 57 65 67 75 77 85 87 95 97 105 106 91 94 102 104 111 113 99 101 108 110 118 121)
              ("&" 42 44 50 52 59 61 67 71 38 41 46 48 55 57 64 66 73 75 103 105 94 96 83 86 91 93 100 102 110 113)
              ("'" 93 95 102 104 111 113)
              ("(" 112 114 22 24 47 49 30 32 39 41 56 58 65 67 93 95 102 104 74 76 83 85)
              (")" 110 112 20 22 49 51 30 32 39 41 58 60 67 69 76 78 85 87 93 95 102 104)
              ("*" 59 61 56 58 66 69 73 80 84 87 95 97 92 94)
              ("+" 57 59 66 68 84 86 93 95 73 79)
              ("," 21 23 31 33 39 42 48 51)
              ("-" 73 79)
              ("." 39 42 48 51)
              ("/" 28 30 37 39 47 49 56 58 66 68 75 77 85 87 94 96 104 106 113 115)
              ("0" 105 107 95 98 86 89 78 80 69 71 60 62 51 53 39 43 47 49 56 59 65 68 74 76 83 85 92 94 101 103 111 115)
              ("1" 40 42 49 51 58 60 67 69 76 78 85 87 91 96 102 105 112 114)
              ("2" 37 43 46 48 56 58 66 68 76 78 86 88 95 97 104 106 91 93 100 102 110 114)
              ("3" 59 61 50 52 38 42 46 48 55 57 68 70 75 78 86 88 95 97 104 106 91 93 100 102 110 114)
              ("4" 41 43 50 52 95 97 86 88 77 79 68 70 55 62 64 66 74 76 83 85 92 94 101 103 110 112)
              ("5" 37 41 49 51 59 61 68 70 73 78 82 84 91 93 100 102 109 115)
              ("6" 77 79 68 70 59 61 50 52 38 42 46 48 55 57 64 66 73 75 82 87 92 94 102 104 111 114)
              ("7" 109 115 104 106 94 96 85 87 75 77 66 68 56 58 47 49 38 40)
              ("8" 50 52 59 61 67 70 86 88 95 97 104 106 110 114 100 102 91 93 82 85 74 78 64 66 55 57 46 48 38 42)
              ("9" 77 79 86 88 95 97 104 106 110 114 100 102 91 93 82 84 73 75 65 70 58 60 48 50 38 41)
              (":" 39 42 48 51 84 87 93 96)
              (";" 84 87 93 96 12 14 22 24 30 33 39 42)
              ("<" 41 43 49 51 57 59 65 67 73 75 83 85 93 95 103 105 113 115)
              ("=" 64 70 82 88)
              (">" 109 111 101 103 93 95 85 87 77 79 67 69 57 59 47 49 37 39)
              ("?" 39 41 48 50 66 68 75 77 85 87 95 97 104 106 91 93 100 102 110 114)
              ("@" 78 80 69 71 58 62 66 68 75 77 85 89 96 98 105 107 37 44 45 47 54 56 63 65 72 74 81 83 90 92 99 101 109 115)
              ("A" 95 97 86 88 77 79 59 61 50 52 41 43 37 39 46 48 55 57 64 70 73 75 82 84 91 93 101 105 111 113)
              ("B" 104 106 95 97 86 88 68 70 59 61 50 52 37 42 46 48 55 57 64 66 73 78 82 84 91 93 100 102 109 114)
              ("C" 104 106 95 97 59 61 50 52 38 42 46 48 55 57 64 66 73 75 82 84 91 93 100 102 110 114)
              ("D" 103 105 95 97 86 88 77 79 68 70 59 61 49 51 37 41 46 48 55 57 64 66 73 75 82 84 91 93 100 102 109 113)
              ("E" 37 43 46 48 55 57 64 66 73 78 82 84 91 93 100 102 109 115)
              ("F" 109 115 100 102 91 93 82 84 73 78 64 66 55 57 46 48 37 39)
              ("G" 104 106 95 97 67 70 59 61 50 52 38 43 46 48 55 57 64 66 73 75 82 84 91 93 100 102 110 114)
              ("H" 113 115 104 106 95 97 86 88 68 70 59 61 50 52 41 43 37 39 46 48 55 57 64 66 73 79 82 84 91 93 100 102 109 111)
              ("I" 38 42 48 50 57 59 66 68 75 77 84 86 93 95 102 104 110 114)
              ("J" 113 115 104 106 95 97 86 88 77 79 68 70 59 61 50 52 38 42 46 48 55 57)
              ("K" 113 115 104 106 94 96 85 87 67 69 58 60 50 52 41 43 37 39 46 48 55 57 64 66 73 77 82 84 91 93 100 102 109 111)
              ("L" 37 43 46 48 55 57 64 66 73 75 82 84 91 93 100 102 109 111)
              ("M" 42 44 51 53 60 62 69 71 78 80 87 89 114 116 105 107 95 98 67 68 76 77 85 86 37 39 46 48 55 57 64 66 73 75 82 84 91 94 100 102 109
               111)
              ("N" 42 44 51 53 60 62 68 71 76 80 87 89 96 98 105 107 114 116 109 111 100 102 91 94 82 86 73 75 64 66 55 57 46 48 37 39)
              ("O" 104 106 95 97 86 88 77 79 68 70 59 61 50 52 38 42 46 48 55 57 64 66 73 75 82 84 91 93 100 102 110 114)
              ("P" 104 106 95 97 86 88 37 39 46 48 55 57 64 66 73 78 82 84 91 93 100 102 109 114)
              ("Q" 104 106 95 97 86 88 77 79 68 70 59 61 50 52 23 25 31 33 38 42 46 48 55 57 64 66 73 75 82 84 91 93 100 102 110 114)
              ("R" 41 43 50 52 59 61 67 69 86 88 95 97 104 106 37 39 46 48 55 57 64 66 73 78 82 84 91 93 100 102 109 114)
              ("S" 104 106 110 114 100 102 91 93 83 85 75 77 67 69 59 61 50 52 46 48 38 42)
              ("T" 39 41 48 50 57 59 66 68 75 77 84 86 93 95 102 104 109 115)
              ("U" 113 115 104 106 95 97 86 88 77 79 68 70 59 61 50 52 38 42 46 48 55 57 64 66 73 75 82 84 91 93 100 102 109 111)
              ("V" 113 115 104 106 95 97 86 88 77 79 68 70 59 61 39 41 47 51 55 57 64 66 73 75 82 84 91 93 100 102 109 111)
              ("W" 41 43 50 52 59 61 69 71 78 80 87 89 96 98 105 107 114 116 85 86 76 77 67 68 38 40 47 49 56 58 64 66 73 75 82 84 91 93 100 102 109
               111)
              ("X" 113 115 104 106 95 96 41 43 50 52 59 61 67 69 37 39 46 48 55 57 65 66 75 77 84 86 92 94 100 102 109 111)
              ("Y" 113 115 104 106 95 97 86 88 39 41 48 50 57 59 66 68 74 78 82 84 91 93 100 102 109 111)
              ("Z" 37 43 46 48 55 57 65 67 75 77 85 87 95 97 104 106 109 115)
              ("[" 2 6 11 15 20 22 29 31 38 40 47 49 56 58 65 67 74 76 83 85 92 94 101 103 110 114)
              ("\\" 32 34 41 43 49 51 58 60 66 68 75 77 83 85 92 94 100 102 109 111)
              ("]" 110 114 2 6 11 15 22 24 31 33 40 42 49 51 58 60 67 69 76 78 85 87 94 96 103 105)
              ("^" 113 115 109 111 119 123 129 131)
              ("_" 0 8 9 17)
              ("`" 112 114 120 122 128 131)
              ("a" 38 43 50 52 59 61 46 48 55 57 65 70 77 79 86 88 92 96)
              ("b" 50 52 59 61 68 70 77 79 86 88 37 42 46 48 55 57 64 66 73 75 82 84 91 96 100 102 109 111)
              ("c" 86 88 50 52 38 42 46 48 55 57 64 66 73 75 82 84 92 96)
              ("d" 86 88 77 79 68 70 59 61 50 52 38 43 46 48 55 57 64 66 73 75 82 84 92 97 104 106 113 115)
              ("e" 86 88 77 79 38 42 46 48 55 57 64 70 73 75 82 84 92 96)
              ("f" 111 115 101 103 92 94 83 85 73 79 65 67 56 58 47 49 38 40)
              ("g" 86 88 77 79 68 70 59 61 50 52 1 6 10 15 23 25 32 34 38 43 46 48 55 57 64 66 73 75 82 84 92 97)
              ("h" 41 43 50 52 59 61 68 70 77 79 86 88 37 39 46 48 55 57 64 66 73 75 82 84 91 96 100 102 109 111)
              ("i" 37 43 48 50 57 59 66 68 75 77 84 86 91 95 111 113 120 122)
              ("j" 1 5 10 14 22 24 31 33 40 42 49 51 58 60 67 69 76 78 85 87 92 96 112 114 121 123)
              ("k" 41 43 50 52 58 60 95 97 86 88 76 78 37 39 46 48 55 57 64 68 73 75 82 84 91 93 100 102 109 111)
              ("l" 37 43 48 50 57 59 66 68 75 77 84 86 93 95 102 104 109 113)
              ("m" 42 44 51 53 60 62 69 71 78 80 87 89 85 86 76 77 67 68 58 59 49 50 37 39 46 48 55 57 64 66 73 75 82 84 91 97)
              ("n" 41 43 50 52 59 61 68 70 77 79 86 88 37 39 46 48 55 57 64 66 73 75 82 84 91 96)
              ("o" 50 52 59 61 68 70 77 79 86 88 92 96 82 84 73 75 64 66 55 57 46 48 38 42)
              ("p" 50 52 59 61 68 70 77 79 86 88 1 3 10 12 19 21 28 30 37 42 46 48 55 57 64 66 73 75 82 84 91 96)
              ("q" 5 7 14 16 23 25 32 34 50 52 59 61 68 70 77 79 86 88 38 43 46 48 55 57 64 66 73 75 82 84 92 97)
              ("r" 95 97 85 88 37 39 46 48 55 57 64 66 73 76 82 84 91 93)
              ("s" 37 42 50 52 59 61 65 69 73 75 82 84 92 97)
              ("t" 39 43 47 49 56 58 65 67 74 76 83 85 91 97 101 103 110 112)
              ("u" 95 97 86 88 77 79 68 70 59 61 50 52 38 43 46 48 55 57 64 66 73 75 82 84 91 93)
              ("v" 95 97 86 88 77 79 68 70 59 61 39 41 47 51 55 57 64 66 73 75 82 84 91 93)
              ("w" 96 98 87 89 78 80 69 71 60 62 41 43 50 52 85 86 76 77 67 68 58 59 38 40 47 49 55 57 64 66 73 75 82 84 91 93)
              ("x" 95 97 86 88 41 43 37 39 50 52 46 48 56 60 66 68 74 78 82 84 91 93)
              ("y" 0 4 9 13 21 23 31 33 95 97 86 88 77 79 68 70 59 61 50 52 38 42 46 48 55 57 64 66 73 75 82 84 91 93)
              ("z" 37 43 46 48 56 58 66 68 76 78 86 88 91 97)
              ("{" 22 24 30 32 39 41 48 50 56 58 64 66 74 76 84 86 93 95 102 104 112 114)
              ("|" 3 5 12 14 21 23 30 32 39 41 48 50 57 59 66 68 75 77 84 86 93 95 102 104 111 113)
              ("}" 20 21 30 32 39 41 48 50 58 60 68 70 76 78 84 86 93 95 102 104 110 112)
              ("~" 115 116 105 107 94 97 102 104 90 91 99 101 109 112)
              ("‚" 21 23 31 33 39 42 48 51)
              ("„" 23 25 33 35 41 44 50 53 19 21 29 31 37 40 46 49)
              ("…" 36 38 45 47 42 44 51 53 39 41 48 50)
              ("‰" 43 44 33 34 51 52 30 31 40 42 38 39 48 49 36 37 45 47 55 57 65 67 75 77 85 87 95 97 105 106 100 101 110 111 108 109 118 119)
              ("‹" 40 42 48 50 56 58 64 66 74 76 84 86 94 96)
              ("‘" 103 104 111 113 120 121)
              ("’" 103 104 112 114 122 123)
              ("“" 104 105 112 114 121 122 101 102 109 111 118 119)
              ("”" 123 124 113 115 104 105 101 102 110 112 120 121)
              ("•" 66 68 74 78 84 86)
              ("–" 74 78)
              ("—" 73 79)
              ("™" 97 98 106 107 114 116 104 105 93 94 102 103 91 92 100 101 108 113)
              ("¤" 59 61 55 57 86 88 77 79 65 69 73 75 82 84 104 106 92 96 100 102)
              ("¦" 3 5 12 14 21 23 30 32 39 41 48 50 75 77 84 86 93 95 102 104 111 113)
              ("§" 19 21 2 6 11 15 23 25 32 34 39 42 47 51 59 61 68 70 55 57 64 66 74 78 104 106 83 86 91 93 100 102 110 114)
              ("Ё" 37 43 46 48 55 57 64 66 73 78 82 84 91 93 100 102 109 115 131 133 140 142 127 129 136 138)
              ("©" 86 87 68 69 57 59 65 66 74 75 83 84 93 95 105 107 97 98 88 89 79 80 70 71 61 62 51 53 37 43 45 47 54 55 63 64 72 73 81 82 90 91 99
               101 109 115)
              ("«" 42 44 50 52 58 60 68 70 78 80 38 40 46 48 54 56 64 66 74 76)
              ("¬" 59 61 68 70 73 79)
              ("*" 73 79)
              ("®" 86 87 77 78 59 60 56 57 65 68 74 75 83 84 92 95 105 107 97 98 88 89 79 80 70 71 61 62 51 53 37 43 45 47 54 55 63 64 72 73 81 82 90
               91 99 101 109 115)
              ("°" 113 115 104 106 92 96 100 102 109 111 119 123)
              ("±" 37 43 57 59 66 68 73 79 84 86 93 95)
              ("·" 75 78 84 87)
              ("ё" 38 43 46 48 55 57 86 88 77 79 64 70 73 75 82 84 92 96 113 115 122 124 109 111 118 120)
              ("»" 40 42 50 52 60 62 68 70 76 78 36 38 46 48 56 58 64 66 72 74)
              ("А" 95 97 86 88 77 79 59 61 50 52 41 43 37 39 46 48 55 57 64 70 73 75 82 84 91 93 101 105 111 113)
              ("Б" 77 79 68 70 59 61 50 52 37 42 46 48 55 57 64 66 73 75 82 87 91 93 100 102 105 106 109 115)
              ("В" 104 106 95 97 86 88 68 70 59 61 50 52 37 42 46 48 55 57 64 66 73 78 82 84 91 93 100 102 109 114)
              ("Г" 37 39 46 48 55 57 64 66 73 75 82 84 91 93 105 106 100 102 109 115)
              ("Д" 33 35 50 52 59 61 68 70 77 79 86 88 95 97 104 106 27 29 36 44 46 48 55 57 64 66 73 75 82 84 91 93 100 102 110 115)
              ("Е" 37 43 46 48 55 57 64 66 73 78 82 84 91 93 100 102 109 115)
              ("Ж" 43 44 51 53 60 61 69 70 39 41 48 50 57 59 66 68 36 37 45 47 55 56 64 65 73 79 83 87 105 106 114 116 111 113 102 104 91 97 100 101
               108 110)
              ("З" 38 42 46 48 55 56 50 52 59 61 68 70 75 78 84 87 95 97 104 106 91 92 100 102 110 114)
              ("И" 42 44 51 53 60 62 69 71 114 116 105 107 96 98 86 89 76 80 37 39 46 48 55 58 64 68 73 75 82 84 91 93 100 102 109 111)
              ("Й" 42 44 51 53 60 62 69 71 114 116 105 107 96 98 86 89 76 80 37 39 46 48 55 58 64 68 73 75 82 84 91 93 100 102 112 113 121 123 131 132
               109 111)
              ("К" 41 43 50 52 58 60 67 69 85 87 94 96 104 106 113 115 37 39 46 48 55 57 64 66 73 77 82 84 91 93 100 102 109 111)
              ("Л" 41 43 50 52 59 61 68 70 77 79 86 88 95 97 104 106 36 38 46 48 55 57 64 66 73 75 82 84 91 93 100 102 110 115)
              ("М" 42 44 51 53 60 62 69 71 78 80 87 89 114 116 105 107 95 98 67 68 76 77 85 86 37 39 46 48 55 57 64 66 73 75 82 84 91 94 100 102 109
               111)
              ("Н" 42 44 51 53 60 62 69 71 87 89 96 98 105 107 114 116 37 39 46 48 55 57 64 66 73 80 82 84 91 93 100 102 109 111)
              ("О" 104 106 95 97 86 88 77 79 68 70 59 61 50 52 38 42 46 48 55 57 64 66 73 75 82 84 91 93 100 102 110 114)
              ("П" 42 44 51 53 60 62 69 71 78 80 87 89 96 98 105 107 37 39 46 48 55 57 64 66 73 75 82 84 91 93 100 102 109 116)
              ("Р" 104 106 95 97 86 88 37 39 46 48 55 57 64 66 73 78 82 84 91 93 100 102 109 114)
              ("С" 96 97 104 106 60 61 50 52 38 42 46 48 55 57 64 66 73 75 82 84 91 93 100 102 110 114)
              ("Т" 39 41 48 50 57 59 66 68 75 77 84 86 93 95 102 104 109 115)
              ("У" 46 48 38 42 50 52 59 61 65 70 77 79 86 88 95 97 104 106 113 115 73 75 82 84 91 93 100 102 109 111)
              ("Ф" 69 71 78 80 87 89 96 98 93 95 84 86 75 77 66 68 39 41 48 50 55 61 63 65 72 74 81 83 90 92 100 106 111 113)
              ("Х" 41 43 50 52 59 60 67 69 37 39 46 48 56 57 65 66 75 77 84 86 113 115 104 106 95 96 92 94 100 102 109 111)
              ("Ц" 33 35 50 52 59 61 68 70 77 79 86 88 95 97 104 106 113 115 37 44 46 48 55 57 64 66 73 75 82 84 91 93 100 102 109 111)
              ("Ч" 113 115 104 106 95 97 86 88 77 79 41 43 50 52 59 61 65 70 73 75 82 84 91 93 100 102 109 111)
              ("Ш" 51 53 60 62 69 71 78 80 87 89 96 98 105 107 114 116 112 113 103 104 94 95 85 86 76 77 67 68 58 59 49 50 37 44 46 48 55 57 64 66 73
               75 82 84 91 93 100 102 109 111)
              ("Щ" 114 116 105 107 96 98 87 89 78 80 69 71 60 62 51 53 112 113 103 104 94 95 85 86 76 77 67 68 58 59 49 50 33 35 37 44 46 48 55 57 64
               66 73 75 82 84 91 93 100 102 109 111)
              ("Ъ" 68 70 59 61 50 52 37 42 46 48 55 57 64 66 73 78 82 84 91 93 99 102 108 111)
              ("Ы" 114 116 105 107 96 98 87 89 78 80 42 44 67 71 58 62 49 53 37 41 46 48 55 57 64 66 73 77 82 84 91 93 100 102 109 111)
              ("Ь" 68 71 59 62 50 53 37 43 46 48 55 57 64 66 73 79 82 84 91 93 100 102 109 111)
              ("Э" 55 56 46 48 38 42 50 52 59 61 68 70 75 79 86 88 95 97 104 106 91 92 100 102 110 114)
              ("Ю" 57 59 48 50 40 43 51 53 60 62 69 71 78 80 87 89 96 98 105 107 93 95 102 104 112 115 36 38 45 47 54 56 63 68 72 77 81 86 90 92 99
               101 108 110)
              ("Я" 41 43 37 39 50 52 59 61 46 48 56 58 66 70 74 79 86 87 82 84 95 97 91 93 104 106 100 102 110 115)
              ("а" 42 44 50 52 59 61 38 41 46 48 55 57 65 70 77 79 86 88 92 96)
              ("б" 68 70 59 61 50 52 38 42 46 48 55 57 64 66 73 78 82 84 92 97 105 106)
              ("в" 86 88 77 79 59 61 50 52 37 42 46 48 55 57 64 69 73 75 82 84 91 96)
              ("г" 37 39 46 48 55 57 64 66 73 75 82 84 91 97)
              ("д" 86 88 77 79 68 70 59 61 50 52 33 35 28 30 37 44 47 49 56 58 65 67 74 76 83 85 92 97)
              ("е" 86 88 77 79 38 43 46 48 55 57 64 70 73 75 82 84 92 96)
              ("ж" 43 44 51 53 40 41 49 50 37 38 46 48 56 61 66 69 87 89 97 98 94 95 85 86 74 79 82 84 91 92)
              ("з" 50 52 38 42 46 48 59 61 66 69 77 79 86 88 82 84 92 96)
              ("и" 95 97 85 88 76 79 59 61 50 52 41 43 37 39 46 49 55 58 64 70 73 75 82 84 91 93)
              ("й" 41 43 50 52 59 61 76 79 85 88 95 97 122 123 112 114 102 104 91 93 82 84 73 75 64 70 55 58 46 49 37 39)
              ("к" 42 43 50 52 58 60 76 78 86 88 96 97 37 39 46 48 55 57 64 68 73 75 82 84 91 93)
              ("л" 77 79 68 70 59 61 50 52 41 43 37 39 47 48 56 58 66 67 75 76 84 88 94 97)
              ("м" 42 44 51 53 60 62 69 71 96 98 86 89 77 80 58 59 67 68 37 39 46 48 55 57 64 66 73 75 82 85 91 93)
              ("н" 41 43 50 52 59 61 77 79 86 88 95 97 91 93 82 84 73 75 64 70 55 57 46 48 37 39)
              ("о" 50 52 59 61 68 70 77 79 86 88 92 96 82 84 73 75 64 66 55 57 46 48 38 42)
              ("п" 41 43 50 52 59 61 68 70 77 79 86 88 37 39 46 48 55 57 64 66 73 75 82 84 91 97)
              ("р" 50 52 59 61 68 70 77 79 86 88 1 3 10 12 19 21 28 30 37 42 46 48 55 57 64 66 73 75 82 84 91 96)
              ("с" 50 52 38 42 46 48 55 57 64 66 73 75 82 84 86 88 92 96)
              ("т" 39 41 48 50 57 59 66 68 75 77 84 86 91 97)
              ("у" 19 21 2 6 11 15 23 25 32 34 41 43 47 52 59 61 68 70 77 79 86 88 95 97 55 57 64 66 73 75 82 84 91 93)
              ("ф" 60 62 69 71 78 80 87 89 85 86 76 77 67 68 58 59 31 32 40 41 47 52 55 57 64 66 73 75 82 84 103 104 92 97)
              ("х" 41 43 50 52 37 39 46 48 56 60 66 68 95 97 86 88 74 78 82 84 91 93)
              ("ц" 95 97 86 88 77 79 68 70 59 61 50 52 33 35 37 44 46 48 55 57 64 66 73 75 82 84 91 93)
              ("ч" 95 97 86 88 77 79 68 70 41 43 50 52 56 61 64 66 73 75 82 84 91 93)
              ("ш" 51 53 60 62 69 71 78 80 87 89 96 98 49 50 58 59 67 68 76 77 85 86 94 95 91 93 82 84 73 75 64 66 55 57 46 48 37 44)
              ("щ" 33 35 49 50 58 59 67 68 76 77 85 86 94 95 96 98 87 89 78 80 69 71 60 62 51 53 37 44 46 48 55 57 64 66 73 75 82 84 91 93)
              ("ъ" 60 62 51 53 38 43 47 49 56 58 65 70 74 76 82 85 91 94)
              ("ы" 96 98 87 89 78 80 69 71 58 62 49 53 42 44 37 41 46 48 55 57 64 68 73 75 82 84 91 93)
              ("ь" 59 61 50 52 37 42 46 48 55 57 64 69 73 75 82 84 91 93)
              ("э" 46 48 38 42 50 52 59 61 66 70 77 79 86 88 82 84 92 96)
              ("ю" 85 86 94 97 87 89 78 80 69 71 60 62 51 53 49 50 40 43 37 39 46 48 55 59 64 68 73 77 82 84 91 93)
              ("я" 50 52 41 43 37 39 47 49 57 61 65 70 77 79 86 88 73 75 82 84 92 97)
             )
       l-st (mapcar (function (lambda (b)
                               (cons (car b)
                                     (mapcar (function (lambda (a)
                                                        (if a
                                                         (list (rem a 9) (/ a 9))
                                                        )
                                                       )
                                             )
                                             (cdr b)
                                     )
                               )
                              )
                    )
                    l-st
            )
       iy   (* (length il) 16)
       mx   (* (apply (function max) (mapcar (function strlen) il)) 8)
 )
 (repeat (length il)
  (setq i   0
        str (car il)
  )
  (repeat (strlen str)
   (setq c (substr str 1 1))
   (cond ((= c " ")
          (setq i   (+ i 8)
                str (substr str 2)
          )
         )
         ((= c "\t")
          (setq i   (+ i 32)
                str (substr str 2)
          )
         )
         ((= c ""))
         (t
          (setq int (cons (mapcar (function (lambda (a)
                                             (if a
                                              (list (+ (car a) i) (+ (cadr a) y))
                                             )
                                            )
                                  )
                                  (cdr (nth (vl-position c st) l-st))
                          )
                          int
                    )
                str (substr str 2)
                i   (+ i 8)
          )
         )
   )
  )
  (setq y  (+ y 16)
        il (cdr il)
  )
 )
 (setq int (apply (function append) int)
       x   mx
       i   0
       y   iy
       l   (list '(0. -3.)
                 (list x -3.)
                 '(-2. -2.)
                 (list (+ x 2.) -2.)
                 '(-3. -1.)
                 (list (+ x 3.) -1.)
                 '(-3. 0.)
                 (list (+ x 3.) 0.)
           )
 )
 (repeat y (setq l (cons (list -4. (setq i (1+ i))) (cons (list (+ x 4.) i) l))))
 (setq l (append (list (list -3. (setq i (1+ i)))
                       (list (+ x 3.) i)
                       (list -3. (setq i (1+ i)))
                       (list (+ x 3.) i)
                       (list -2. (setq i (1+ i)))
                       (list (+ x 2.) i)
                       (list 0. (setq i (1+ i)))
                       (list x i)
                 )
                 l
         )
 )
 (while (= (car (setq gr (grread nil 5 0))) 5)
  (setq s  (/ (getvar "viewsize") (cadr (getvar "SCREENSIZE")))
        gr (trans (cadr gr) 1 3)
  )
  (redraw)
  (grvecs (append (cons cb l) (cons cf int))
          ((lambda (c x y) (list (list c 0. 0. x) (list 0. c 0. y) (list 0. 0. c 0.) '(0. 0. 0. 1.))) s
                                                                                                      (+ (car gr) (* 15 s))
                                                                                                      (+ (cadr gr) (* 15 s))
          )
  )
 )
 (redraw)
 (princ)
)
;|«Visual LISP© Format Options»
(150 1 16 2 nil nil 90 90 0 0 0 nil nil nil T)
;*** DO NOT add text below the comment! ***|;
Inferi вне форума  
 
Непрочитано 21.01.2016, 12:40
#2862
Inferi


 
Регистрация: 14.05.2015
Сообщений: 33


Всем привет! Помогите применить функцию vl-remove-if-not к списку вида ("%%C100" "%%C100" "%%C100" "%%C125" "%%C125" "%%C160" "%%C200" "%%C200" "%%C200") для удаления повторяющихся элементов списка. На выходе соответственно => ("%%C100" "%%C125" "%%C160 "%%C200"). Спасибо за внимание!
Inferi вне форума  
 
Непрочитано 21.01.2016, 13:03
1 | #2863
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Inferi Посмотреть сообщение
Помогите применить функцию
Код:
[Выделить все]
 (defun unq (w)
  (if w (cons (car w) (unq (vl-remove (car w) w)))))
gomer вне форума  
 
Непрочитано 21.01.2016, 13:47
1 | #2864
ciril

САПР
 
Регистрация: 29.09.2011
СПб
Сообщений: 283


Ну или:
Код:
[Выделить все]
 ((eval (setq la0 (function (lambda (e00 / a00 a01)
                             (if (setq a00 (car e00))
                               (if (eq a00 (car (setq a01 ((eval la0) (cdr e00)))))
                                 a01
                                 (cons a00 a01)))))))
  '("%%C100" "%%C100" "%%C100" "%%C125" "%%C125" "%%C160" "%%C200" "%%C200" "%%C200"))
__________________
На работе было скучно:shout:
ciril вне форума  
 
Непрочитано 21.01.2016, 14:08
#2865
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,010


А как посчитать сколько каких повторяющихся элементов в списке?

----- добавлено через ~1 мин. -----
(("%%C100" . 3) ("%%C125" . 2) ("%%C160" . 1) ("%%C200" . 3)) получить чтоб
Nike вне форума  
 
Непрочитано 21.01.2016, 14:13
#2866
ciril

САПР
 
Регистрация: 29.09.2011
СПб
Сообщений: 283


А в каком виде вывести результат подсчета?
__________________
На работе было скучно:shout:
ciril вне форума  
 
Непрочитано 21.01.2016, 14:20
#2867
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,010


ciril, списком вида (("%%C100" . 3) ("%%C125" . 2) ("%%C160" . 1) ("%%C200" . 3))
Nike вне форума  
 
Непрочитано 21.01.2016, 14:39
1 | #2868
ciril

САПР
 
Регистрация: 29.09.2011
СПб
Сообщений: 283


Код:
[Выделить все]
 ((eval (setq la0 (function (lambda (e00 / a00 a01)
                               (if (setq a00 (cdr e00))
                                 (if (setq a01 (assoc (car e00) (setq a00 ((eval la0) a00))))
                                   (cons (cons (car a01) (1+ (cdr a01))) (cdr a00))
                                   (cons (cons (car e00) 1) a00))
                                 (list (cons (car e00) 1)))))))
    '("%%C100" "%%C100" "%%C100" "%%C125" "%%C125" "%%C160" "%%C200" "%%C200" "%%C200"))
__________________
На работе было скучно:shout:
ciril вне форума  
 
Непрочитано 21.01.2016, 14:49
#2869
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,010


ciril, класс! Спасибо!
Nike вне форума  
 
Непрочитано 21.01.2016, 14:50
#2870
ciril

САПР
 
Регистрация: 29.09.2011
СПб
Сообщений: 283


Не за что
__________________
На работе было скучно:shout:
ciril вне форума  
 
Непрочитано 21.01.2016, 15:49
1 | #2871
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


можно и проще вообще не обязательно выворачивать код наизнанку
Код:
[Выделить все]
 (defun clc (w)
  ((lambda (tail)
     (if w (cons (cons (car w) (- (length w) (length tail))) (clc tail))))
    (vl-remove (car w) w)))
gomer вне форума  
 
Непрочитано 22.01.2016, 20:44
#2872
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


То Gomer - ИХМО - ты достиг Lisp Level 80!
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 23.01.2016, 02:59
#2873
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Offtop:
Цитата:
Сообщение от Дима_ Посмотреть сообщение
То Gomer - ИХМО - ты достиг Lisp Level 80!
Стесняюсь спросить: "А с какого именно уровня донесся этот спич?"
skkkk вне форума  
 
Непрочитано 23.01.2016, 11:15
#2874
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


В этом вопросе мнения расходятся...
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 26.01.2016, 10:06
#2875
kakt00z

инженер-проектировщик КИПиА
 
Регистрация: 30.08.2008
Минск
Сообщений: 159


Господа!
из списка '("A" "B" "C" "D")
нужно сделать список '(("A" "B") ("A" "C") ("A" "D") ("B" "C") ("B" "D") ("C" "D"))
по сути выдать перечень сторон + диагоналей многоугольника
написал такой код

Код:
[Выделить все]
 (setq tmp '("A" "B" "C" "D" "E"))

(defun tst (tmp)
  (if tmp
    (append
    (mapcar
      '(lambda (x)
	 (list (car tmp) x)
	 )
      (cdr tmp))
    (tst (cdr tmp))
    )
  )
  )
(tst tmp)
но подозреваю что написал много лишнего и интуиция подсказывает что можно сделать красивее
kakt00z вне форума  
 
Непрочитано 26.01.2016, 12:53
#2876
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Да нормально все написано - я бы конечно предпочел пары а не списки - вместо (list (car tmp) x) -> (cons (car tmp) x)
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 27.01.2016, 19:29
#2877
Jerald

Конструктор
 
Регистрация: 04.04.2007
Киев
Сообщений: 536


Как программно переключить визуальные стили?
Jerald вне форума  
 
Непрочитано 12.02.2016, 22:32
#2878
Inferi


 
Регистрация: 14.05.2015
Сообщений: 33


Всем доброго времени суток! Прикрепляю к примитиву данные: (vlax-ldata-put <vla_примитив> "mleader_name_blk" value). Как получить pickset или просто список с условием типа (= value (vlax-ldata-get <vla_примитив> "mleader_name_blk")). Пробовал конструкцию типа:
Код:
[Выделить все]
(setq list_mleader (_dwgru-conv-pickset-to-list (ssget)))
(setq list_mleader_ldata
        (vl-remove-if
	  '(=
	   (function
            (lambda (x)
              (vlax-ldata-get (vlax-ename->vla-object (car x))) "mleader_name_blk")
	    )
	   )
	    value
	   )
	list_mleader
	)
)

(defun _dwgru-conv-pickset-to-list (value)
  (vl-remove-if (function listp) (mapcar (function cadr) (ssnamex value)))
)

Последний раз редактировалось Inferi, 12.02.2016 в 23:08.
Inferi вне форума  
 
Непрочитано 12.02.2016, 22:43
#2879
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411


Попробуй нечто типа
Код:
[Выделить все]
 (setq list_mleader_ldata
       (vl-remove-if
         (function (lambda (x)
                     (member value (vlax-ldata-get (vlax-ename->vla-object (car x)) "mleader_name_blk"))
                     ) ;_ end of lambda
                   ) ;_ end of function
         (_dwgru-conv-pickset-to-list (ssget))
         ) ;_ end of vl-remove-if
      ) ;_ end of setq

(defun _dwgru-conv-pickset-to-list (value)
  (vl-remove-if (function listp) (mapcar (function cadr) (ssnamex value)))
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.02.2016, 23:31
#2880
Inferi


 
Регистрация: 14.05.2015
Сообщений: 33


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Попробуй нечто типа
Код:
[Выделить все]
 (setq list_mleader_ldata
       (vl-remove-if
         (function (lambda (x)
                     (member value (vlax-ldata-get (vlax-ename->vla-object (car x)) "mleader_name_blk"))
                     ) ;_ end of lambda
                   ) ;_ end of function
         (_dwgru-conv-pickset-to-list (ssget))
         ) ;_ end of vl-remove-if
      ) ;_ end of setq

(defun _dwgru-conv-pickset-to-list (value)
  (vl-remove-if (function listp) (mapcar (function cadr) (ssnamex value)))
  ) ;_ end of defun
Спасибо, но выдает "неверный тип аргумента: consp <Имя объекта: >"
Inferi вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу)



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Вставка в таблицу поля, соотвествующего площади примитива Profan Готовые программы 272 06.06.2021 23:12
Сейсмозащита и сейсмоизоляция существующих, построенных зд. IANationalInformAgentstvo Прочее. Архитектура и строительство 216 20.01.2015 16:51
Мониторы LCD CRT Разное 94 17.06.2008 10:51
ЮМОР 2006 =) Perezz!! Разное 1122 04.01.2007 00:46