[ Skill ] equal, eq, eqv, member, memq, memv
https://www.cnblogs.com/yeungchie/
equal
等效运算
==
equal( 1 1 )
; => t
equal( 1 1.0 )
; => t
eq
直接比较内存地址,因此效率比
equal
高
不建议用于比较字符串、数字、链表
eq( 1 1 )
; => t
eq( 1 1.0 )
; => nil
eq( "ab" "ab" )
; => t
eq( "a" strcat( "a" ) )
; => nil
lista = '( 1 2 )
eq( lista lista )
; => t
eq( '( 1 2 ) '( 1 2 ) )
; => nil
eqv
和
eq
一样可以用于需要区分 整数 和 浮点数 的场景
可以判断字符串是否等效
不建议用于链表
eqv( 1 1.0 )
; => nil
eqv( "2" strcat( "2" ) )
; => t
eqv( '( 1 2 ) '( 1 2 ) )
; => nil
member
用
equal
进行比较
member( 2 '( 1 2.0 2 ) )
; => ( 2.0 2 )
memq
用
eq
进行比较
memq( 2 '( 1 2.0 2 ) )
; => ( 2 )
memq( "2" list( 1 2.0 strcat( "2" ) ) )
; => nil
memv
用
eqv
进行比较
memv( 2 '( 1 2.0 2 ) )
; => ( 2 )
memv( "2" list( 1 2.0 strcat( "2" ) ) )
; => ( 2 )