角度转度分秒lisp函数_math-utils.lsp

;数学类基本函数

;;;name:BF-math-union

;;;desc:列表并集

;;;arg:lst1:列表

;;;arg:lst2:列表

;;;return:并集运算后的列表

;;;example:(BF-math-union '(102.946 68.6354 3) '(112.102 97.4851 3))

(defun BF-math-union (lst1 lst2)

(append lst1

(vl-remove-if '(lambda (x) (member x lst1)) lst2)

)

)

;;;函数名称:BF-Math-SymmetricDifference

;;;函数说明:列表对称差集--leemac

;;;参 数:l1:列表

;;;参 数:l2:列表

;;;返 回 值:对称差集运算后的列表

;;;示 例:(BF-Math-SymmetricDifference l1 l2)

(defun BF-Math-SymmetricDifference ( l1 l2 )

(append

(vl-remove-if '(lambda ( x ) (member x l2)) l1)

(vl-remove-if '(lambda ( x ) (member x l1)) l2)

)

)

;;;name:BF-math-Difference

;;;desc:列表差集

;;;arg:lst1:列表

;;;arg:lst2:列表

;;;return:差集运算后的列表

;;;example:(BF-math-Difference '(102.946 68.6354 3) '(112.102 97.4851 3))

(defun BF-math-Difference (lst1 lst2 / lst)

(vl-remove-if '(lambda ( x ) (member x lst2)) lst1)

)

;;;name:BF-math-intersect

;;;desc:列表交集

;;;arg:lst1:列表

;;;arg:lst2:列表

;;;return:交集运算后的列表

;;;example:(BF-math-intersect '(102.946 68.6354 3) '(112.102 97.4851 3))

(defun BF-math-intersect (lst1 lst2)

(vl-remove-if-not '(lambda (x) (member x lst2)) lst1)

)

;;;name:BF-math-minlist

;;;desc:计算列表的最小值

;;;arg:lst:列表

;;;return:列表的最小值

;;;example:(BF-math-minlist '(102.946 68.6354 3))

(defun BF-math-minlist (lst)

(if (atom lst)

lst

(apply 'min lst))

)

;;;name:BF-math-maxlist

;;;desc:计算列表的最大值

;;;arg:lst:列表

;;;return:列表的最大值

;;;example:(BF-math-maxlist '(102.946 68.6354 3))

(defun BF-math-maxlist (lst)

(if (atom lst)

lst

(apply 'max lst))

)

;;;name:BF-math-power

;;;desc:增强power函数,目的为扩展expt函数

;;;arg:base:字符串,数字,列表类型,其他类型返回nil

;;;arg:pow:整数(用于字符串,列表,数字)实数(用于数字)

;;;return:参数都为数字时,返回expt计算的结果,base为字符串和列表时,返回自乘的结果

;;;example:(BF-math-power '(102.946 68.6354 3) 2)

(defun BF-math-power (base pow / str1)

(cond

((BF-stringp base)

(progn

(setq str1 "")

(repeat pow

(setq str1 (strcat str1 base))

)

))

((or (BF-intp base)(BF-realp base)) (expt base pow))

((listp base)

(progn

(repeat pow</

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值