File: remove

package info (click to toggle)
scheme9 2025.08.12-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,080 kB
  • sloc: lisp: 16,752; ansic: 11,869; sh: 806; makefile: 237; sed: 6
file content (16 lines) | stat: -rw-r--r-- 617 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
S9 LIB  (remove obj list)        ==>  list
        (remp procedure^1 list)  ==>  list
        (remq obj list)          ==>  list
        (remv obj list)          ==>  list

        (load-from-library "remove.scm")

Remove elements from a list. REMP uses the unary predicate
PROCEDURE^1 to describe the property of the elements to be
removed. REMOVE uses EQUAL?, REMV uses EQV?, and REMQ uses
EQ? to compare each element of LIST to OBJ.

(remp number? '(a 1 b 2 c 3))   ==>  (a b c)
(remove '(b) '(a (b) (c) (b)))  ==>  (a (c))
(remq 'b     '(a b c b d))      ==>  (a c d)
(remv 3      '(3 1 2 3 1))      ==>  (1 2 1)