core: memq: Prepare for M2-Planet.
* src/lib.c (memq): Prepare for M2-Planet.
This commit is contained in:
parent
9ffe861eaf
commit
c48b847bf7
30
src/lib.c
30
src/lib.c
|
@ -134,19 +134,31 @@ memq (SCM x, SCM a)
|
|||
if (t == TCHAR || t == TNUMBER)
|
||||
{
|
||||
long v = VALUE (x);
|
||||
while (a != cell_nil && v != VALUE (CAR (a)))
|
||||
a = CDR (a);
|
||||
while (a != cell_nil)
|
||||
{
|
||||
if (v == VALUE (CAR (a)))
|
||||
return a;
|
||||
a = CDR (a);
|
||||
}
|
||||
return cell_f;
|
||||
}
|
||||
else if (t == TKEYWORD)
|
||||
if (t == TKEYWORD)
|
||||
{
|
||||
while (a != cell_nil && (TYPE (CAR (a)) != TKEYWORD || string_equal_p (x, CAR (a)) == cell_f))
|
||||
a = CDR (a);
|
||||
while (a != cell_nil)
|
||||
{
|
||||
if (TYPE (CAR (a)) == TKEYWORD)
|
||||
if (string_equal_p (x, CAR (a)) == cell_t)
|
||||
return a;
|
||||
a = CDR (a);
|
||||
}
|
||||
return cell_f;
|
||||
}
|
||||
else
|
||||
while (a != cell_nil && x != CAR (a))
|
||||
while (a != cell_nil)
|
||||
{
|
||||
if (x == CAR (a))
|
||||
return a;
|
||||
a = CDR (a);
|
||||
if (a != cell_nil)
|
||||
return a;
|
||||
}
|
||||
return cell_f;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue