SCM
ly_last (SCM list)
{
- return ly_car (scm_last_pair (list));
+ return scm_car (scm_last_pair (list));
}
{
assert (d);
- return (d == LEFT) ? ly_car (s) : ly_cdr (s);
+ return (d == LEFT) ? scm_car (s) : scm_cdr (s);
}
SCM
bool
is_number_pair (SCM p)
{
- return ly_c_pair_p (p)
- && scm_is_number (ly_car (p)) && scm_is_number (ly_cdr (p));
+ return scm_is_pair (p)
+ && scm_is_number (scm_car (p)) && scm_is_number (scm_cdr (p));
}
typedef void (*Void_fptr) ();
return false;
}
+LY_DEFINE(ly_assoc_get, "ly:assoc-get",
+ 2, 1, 0,
+ (SCM key, SCM alist, SCM default_value),
+ "Return value if KEY in ALIST, else DEFAULT-VALUE (or #f if not specified).")
+{
+ SCM handle = scm_assoc (key, alist);
+
+ if (default_value == SCM_UNDEFINED)
+ default_value = SCM_BOOL_F;
+
+ if (scm_is_pair (handle))
+ return scm_cdr (handle);
+ else
+ return default_value;
+}
+
bool
is_axis (SCM s)
{
Interval
ly_scm2interval (SCM p)
{
- return Interval (scm_to_double (ly_car (p)), scm_to_double (ly_cdr (p)));
+ return Interval (scm_to_double (scm_car (p)), scm_to_double (scm_cdr (p)));
}
Drul_array<Real>
ly_scm2realdrul (SCM p)
{
- return Drul_array<Real> (scm_to_double (ly_car (p)),
- scm_to_double (ly_cdr (p)));
+ return Drul_array<Real> (scm_to_double (scm_car (p)),
+ scm_to_double (scm_cdr (p)));
}
SCM
{
SCM newcons = scm_cons (elt, SCM_EOL);
- scm_set_cdr_x (ly_car (l), newcons);
+ scm_set_cdr_x (scm_car (l), newcons);
scm_set_car_x (l, newcons);
}
Offset
ly_scm2offset (SCM s)
{
- return Offset (scm_to_double (ly_car (s)),
- scm_to_double (ly_cdr (s)));
+ return Offset (scm_to_double (scm_car (s)),
+ scm_to_double (scm_cdr (s)));
}
LY_DEFINE (ly_number2string, "ly:number->string",
SCM
ly_deep_copy (SCM src)
{
- if (ly_c_pair_p (src))
- return scm_cons (ly_deep_copy (ly_car (src)), ly_deep_copy (ly_cdr (src)));
+ if (scm_is_pair (src))
+ return scm_cons (ly_deep_copy (scm_car (src)), ly_deep_copy (scm_cdr (src)));
else if (ly_c_vector_p (src))
{
int len = SCM_VECTOR_LENGTH (src);
SCM
ly_assoc_chain (SCM key, SCM achain)
{
- if (ly_c_pair_p (achain))
+ if (scm_is_pair (achain))
{
- SCM handle = scm_assoc (key, ly_car (achain));
- if (ly_c_pair_p (handle))
+ SCM handle = scm_assoc (key, scm_car (achain));
+ if (scm_is_pair (handle))
return handle;
else
- return ly_assoc_chain (key, ly_cdr (achain));
+ return ly_assoc_chain (key, scm_cdr (achain));
}
else
return SCM_BOOL_F;
SCM
ly_assoc_cdr (SCM key, SCM alist)
{
- if (ly_c_pair_p (alist))
+ if (scm_is_pair (alist))
{
- SCM trykey = ly_caar (alist);
- if (ly_c_pair_p (trykey) && to_boolean (scm_equal_p (key, ly_cdr (trykey))))
- return ly_car (alist);
+ SCM trykey = scm_caar (alist);
+ if (scm_is_pair (trykey) && to_boolean (scm_equal_p (key, scm_cdr (trykey))))
+ return scm_car (alist);
else
- return ly_assoc_cdr (key, ly_cdr (alist));
+ return ly_assoc_cdr (key, scm_cdr (alist));
}
return SCM_BOOL_F;
}
{
SCM s = lst;
k--;
- for (; ly_c_pair_p (s) && k--; s = ly_cdr (s))
+ for (; scm_is_pair (s) && k--; s = scm_cdr (s))
;
- if (ly_c_pair_p (s))
+ if (scm_is_pair (s))
scm_set_cdr_x (s, SCM_EOL);
}
return lst;
ly_unique (SCM list)
{
SCM unique = SCM_EOL;
- for (SCM i = list; ly_c_pair_p (i); i = ly_cdr (i))
+ for (SCM i = list; scm_is_pair (i); i = scm_cdr (i))
{
- if (!ly_c_pair_p (ly_cdr (i))
- || !ly_c_equal_p (ly_car (i), ly_cadr (i)))
- unique = scm_cons (ly_car (i), unique);
+ if (!scm_is_pair (scm_cdr (i))
+ || !ly_c_equal_p (scm_car (i), scm_cadr (i)))
+ unique = scm_cons (scm_car (i), unique);
}
return scm_reverse_x (unique, SCM_EOL);
}
int len = scm_ilength (lst);
SCM *arr = new SCM[len];
int k = 0;
- for (SCM s = lst; SCM_NNULLP (s); s = SCM_CDR (s))
- arr[k++] = SCM_CAR (s);
+ for (SCM s = lst; SCM_NNULLP (s); s = scm_cdr (s))
+ arr[k++] = scm_car (s);
assert (k == len);
qsort (arr, len, sizeof (SCM), &scm_default_compare);
{
SCM before = SCM_EOL;
SCM after = list;
- for (; ly_c_pair_p (after);)
+ for (; scm_is_pair (after);)
{
- SCM i = ly_car (after);
- after = ly_cdr (after);
+ SCM i = scm_car (after);
+ after = scm_cdr (after);
if (ly_c_equal_p (i, s))
break;
before = scm_cons (i, before);
SCM p = scm_current_output_port ();
scm_puts ("(", p);
- for (; ly_c_pair_p (s); s =ly_cdr (s))
+ for (; scm_is_pair (s); s =scm_cdr (s))
{
- scm_display (ly_car (s), p);
+ scm_display (scm_car (s), p);
scm_puts (" ", p);
}
scm_puts (")", p);
{
Slice s;
s.set_empty ();
- for (; ly_c_pair_p (l); l = ly_cdr (l))
- if (scm_is_number (ly_car (l)))
- s.add_point (scm_to_int (ly_car (l)));
+ for (; scm_is_pair (l); l = scm_cdr (l))
+ if (scm_is_number (scm_car (l)))
+ s.add_point (scm_to_int (scm_car (l)));
return s;
}
SCM
robust_list_ref (int i, SCM l)
{
- while (i-- > 0 && ly_c_pair_p (ly_cdr (l)))
- l = ly_cdr (l);
- return ly_car (l);
+ while (i-- > 0 && scm_is_pair (scm_cdr (l)))
+ l = scm_cdr (l);
+ return scm_car (l);
}
Real
return scm_c_make_hash_table (0);
SCM tab = scm_c_make_hash_table (i);
- for (SCM s = alist; ly_c_pair_p (s); s = ly_cdr (s))
+ for (SCM s = alist; scm_is_pair (s); s = scm_cdr (s))
{
- SCM pt = ly_cdar (s);
- scm_hashq_set_x (tab, ly_caar (s), pt);
+ SCM pt = scm_cdar (s);
+ scm_hashq_set_x (tab, scm_caar (s), pt);
}
return tab;
}
__FUNCTION__, "string");
return scm_makfrom0str (gettext (scm_i_string_chars (string)));
}
+