明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1317|回复: 9

[已解答] 关于 LAMBDA (X) 函数 不太明白

[复制链接]
发表于 2022-2-4 08:01:17 | 显示全部楼层 |阅读模式
本帖最后由 f4800 于 2022-2-4 08:03 编辑

[size=11.5425pt]
  • 不太明白这一段函数  (TTT-Z X X)  ,X X 怎么区别是哪一个函数 哪一个是 (LAMBDA (X) 里面的(X)
  • 请 各位大师不吝指导下


  • (setq LCHJ (MAPCAR '(LAMBDA (X) (TTT-Z X X)) LCHJ))
  • (DEFUN TTT-Z  (LCWB XINXI / +WZH -WZH KWZH LCH BMI KMI)
[size=12.9675pt]
  •   (setq DASC (ASCII ","))
  •   (setq -ASC (ASCII "~"))
  •   (setq +ASC (ASCII "+"))
  •   (setq KASC (ASCII "K"))
  •   (setq \NASC (ASCII "\n"))
  •   (setq _ASC (ASCII "-"))
  •   (setq XSDASC (ASCII "."))
  •   (setq :ASC (ASCII ":"))

  •   (setq +WZH (VL-STRING-POSITION +ASC LCWB))
  •   (setq -WZH (VL-STRING-POSITION _ASC LCWB))
  •   (setq KWZH (VL-STRING-POSITION KASC LCWB))
  •   (if (NOT (WCMATCH LCWB "*[~.-9K+-]*"))
  •     (PROGN (COND ((AND +WZH KWZH)
  •                    (setq KMI (SUBSTR LCWB (1+ KWZH) +WZH))
  •                    (setq BMI (SUBSTR LCWB (+ 2 +WZH)))
  •                    (setq KMI (SUBSTR KMI 2))
  •                    (setq KMI (ATOF KMI))
  •                    (setq BMI (ATOF BMI))
  •                    (setq LCH (+ (* 1000 KMI) BMI))
  •                  )
  •              ((AND -WZH KWZH)
  •                (setq KMI (SUBSTR LCWB (1+ KWZH) -WZH))
  •                (setq BMI (SUBSTR LCWB (+ 2 -WZH)))
  •                (setq KMI (SUBSTR KMI 2))
  •                (setq KMI (* -1 (ATOF KMI)))
  •                (setq BMI (ATOF BMI))
  •                (setq LCH (- (* 1000 KMI) BMI))
  •              )
  •              ((AND (NOT +WZH) (NOT KWZH) (/= "" LCWB))
  •                (setq LCH (ATOF LCWB))
  •              )
  •              (T (setq LCH XINXI))
  •            )
  •     )
  •     (PROGN (setq LCH XINXI))
  •   )
  • )

发表于 2022-2-4 09:46:04 | 显示全部楼层
LCJ 用TTT-Z计算?
发表于 2022-2-4 09:47:41 | 显示全部楼层
(setq LCHJ (MAPCAR '(LAMBDA (X) (TTT-Z X X)) LCHJ))
(DEFUN TTT-Z  (LCWB XINXI / +WZH -WZH KWZH LCH BMI KMI)
[size=12.9675pt]
  (setq DASC (ASCII ","))
  (setq -ASC (ASCII "~"))
  (setq +ASC (ASCII "+"))
  (setq KASC (ASCII "K"))
  (setq \NASC (ASCII "\n"))
  (setq _ASC (ASCII "-"))
  (setq XSDASC (ASCII "."))
  (setq :ASC (ASCII ":"))

  (setq +WZH (VL-STRING-POSITION +ASC LCWB))
  (setq -WZH (VL-STRING-POSITION _ASC LCWB))
  (setq KWZH (VL-STRING-POSITION KASC LCWB))
  (if (NOT (WCMATCH LCWB "*[~.-9K+-]*"))
    (PROGN (COND ((AND +WZH KWZH)
                   (setq KMI (SUBSTR LCWB (1+ KWZH) +WZH))
                   (setq BMI (SUBSTR LCWB (+ 2 +WZH)))
                   (setq KMI (SUBSTR KMI 2))
                   (setq KMI (ATOF KMI))
                   (setq BMI (ATOF BMI))
                   (setq LCH (+ (* 1000 KMI) BMI))
                 )
             ((AND -WZH KWZH)
               (setq KMI (SUBSTR LCWB (1+ KWZH) -WZH))
               (setq BMI (SUBSTR LCWB (+ 2 -WZH)))
               (setq KMI (SUBSTR KMI 2))
               (setq KMI (* -1 (ATOF KMI)))
               (setq BMI (ATOF BMI))
               (setq LCH (- (* 1000 KMI) BMI))
             )
             ((AND (NOT +WZH) (NOT KWZH) (/= "" LCWB))
               (setq LCH (ATOF LCWB))
             )
             (T (setq LCH XINXI))
           )
    )
    (PROGN (setq LCH XINXI))
  )
)
前面是公式,后面是你要算的值

评分

参与人数 1明经币 +1 收起 理由
f4800 + 1 多谢大师指点

查看全部评分

发表于 2022-2-4 10:21:25 | 显示全部楼层
看函数说明, 就像defun那样只是没有名字, x 是变量 ,mapcar是循环,依次把表里的元素给x

评分

参与人数 1明经币 +1 收起 理由
f4800 + 1 多谢大师指点

查看全部评分

 楼主| 发表于 2022-2-4 11:15:12 | 显示全部楼层
多谢大师指点    这个函数用的少   。。。 有点迷糊。。。。
就像defun那样只是没有名字, x 是变量 ,mapcar是循环,依次把表里的元素给x     
这个好理解多了    多谢
发表于 2022-2-4 14:03:27 | 显示全部楼层
(LAMBDA (X) (TTT-Z X X))
两个X都临时函数的参数X ,传递给TTT-Z 函数,
没有详细去看TTT-Z函数的定义,TTT-Z是个双参数的函数,lambda定义的是单参数的函数 要传递到双参数函数,就重复传递使用了同一个参数。
另外:
(LAMBDA (X Y) (TTT-Z X Y)) 就是双参数传递了,不过楼主的程序不太适用

点评

多谢分析 多谢 这个函数也是从别人哪里学习抄来的。。。。  发表于 2022-2-4 15:57

评分

参与人数 1金钱 +5 收起 理由
f4800 + 5

查看全部评分

 楼主| 发表于 2022-2-6 08:06:51 来自手机 | 显示全部楼层
多谢指点    多谢。。。。
 楼主| 发表于 2022-2-6 08:07:24 来自手机 | 显示全部楼层
各位大师分析以后,明白多了。再次感谢各位大师。。。
 楼主| 发表于 2022-2-13 22:36:53 | 显示全部楼层
流氓兔 发表于 2022-2-4 09:47
(setq LCHJ (MAPCAR '(LAMBDA (X) (TTT-Z X X)) LCHJ))
(DEFUN TTT-Z  (LCWB XINXI / +WZH -WZH KWZH LCH  ...

多谢大师指导   
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-13 14:18 , Processed in 0.181585 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表