RosettaCodeData/Task/Bitwise-operations/LFE/bitwise-operations-1.lfe

27 lines
633 B
Plaintext

(defun bitwise (a b)
(lists:map
(lambda (x) (io:format "~p~n" `(,x)))
`(,(band a b)
,(bor a b)
,(bxor a b)
,(bnot a)
,(bsl a b)
,(bsr a b)))
'ok)
(defun dec->bin (x)
(integer_to_list x 2))
(defun describe (func arg1 arg2 result)
(io:format "(~s ~s ~s): ~s~n"
(list func (dec->bin arg1) (dec->bin arg2) (dec->bin result))))
(defun bitwise
((a b 'binary)
(describe "band" a b (band a b))
(describe "bor" a b (bor a b))
(describe "bxor" a b (bxor a b))
(describe "bnot" a b (bnot a))
(describe "bsl" a b (bsl a b))
(describe "bsr" a b (bsr a b))))