jenlin 发表于 2024-8-13 21:51:23

代码可阅读性

Lee Mac 的代码真的是。。。难
对照代码都没法消化,比如随便摘一段Lee Mac的函数中的代码。

(setq
      ent (entget ent)
      lst (_vertices ent)
      lst (apply 'mapcar
                (cons
                  (function
                        (lambda ( a b )
                            (
                              (lambda ( c )
                                    (mapcar
                                        (function
                                          (lambda ( d )
                                                (mapcar
                                                    (function
                                                      (lambda ( e f )
                                                            (mapcar 'd (car e)
                                                                (mapcar
                                                                  (function
                                                                        (lambda ( g ) (* g (/ f 2.0)))
                                                                  )
                                                                  c
                                                                )
                                                            )
                                                      )
                                                    )
                                                    (list a b) (cdr a)
                                                )
                                          )
                                        )
                                        (list + -)
                                    )
                              )
                              (
                                    (lambda ( v / n )
                                        (setq v (list (- (cadr v)) (car v) 0.0)
                                              n (distance '(0. 0.) v)
                                        )
                                        (if (equal 0.0 n 1e-14)
                                          (list0.0 0.0 0.0)
                                          (mapcar '/ v (list n n n))
                                        )
                                    )
                                    (mapcar '- (car a) (car b))
                              )
                            )
                        )
                  )
                  (if (= 1 (logand 1 (cdr (assoc 70 ent))))
                        (list
                            (cons (last lst) lst)
                            (append lst (list (car lst)))
                        )
                        (list lst (cdr lst))
                  )
                )
            )
      lst (
                (lambda ( a )
                  (if (zerop (logand 1 (cdr (assoc 70 ent))))
                        (append
                            (list (mapcar 'car(carlst)))
                            a
                            (list (mapcar 'cadr (last lst)))
                        )
                        a
                  )
                )
                (apply 'append
                  (mapcar
                        (function
                            (lambda ( a b / c )
                              (if
                                    (setq c
                                        (apply 'append
                                          (mapcar
                                                (function
                                                    (lambda ( d e / f )
                                                      (if (setq f (inters (car d) (cadr d) (car e) (cadr e) nil))
                                                            (list f)
                                                      )
                                                    )
                                                )
                                                a b
                                          )
                                        )
                                    )
                                    (list c)
                              )
                            )
                        )
                        lst (cdr lst)
                  )
                )
            )
    )



Bao_lai 发表于 2024-8-13 21:57:57

LM有自己的风格,确实比较晦涩,但别人的轮子,装你车上,能正常跑就好。

hubeiwdlue 发表于 2024-8-13 22:15:04

Lee mac主打一个数学好,真的很难。

qazxswk 发表于 2024-8-13 22:44:12

lambda与mapcar函数好难学

tryhi 发表于 2024-8-14 11:13:56

qazxswk 发表于 2024-8-13 22:44
lambda与mapcar函数好难学

看似两个,其实就一个mapcar,什么?你没写过defun?当我没说

kozmosovia 发表于 2024-8-14 11:59:47

又不需要重写其功能,就拿他的函数当成普通lisp函数,会用就行了。
页: [1]
查看完整版本: 代码可阅读性