/*
Ugh. this is not very efficient.
*/
- SCM str = scm_symbol_to_string (s);
- return ly_scm2string (str);
+ return ly_scm2string (scm_symbol_to_string (s));
+}
+
+string
+robust_symbol2string (SCM sym, string str)
+{
+ return scm_is_symbol (sym) ? ly_symbol2string (sym) : str;
}
string
bool
is_axis (SCM s)
{
- if (scm_is_number (s))
+ if (scm_is_integer (s))
{
int i = scm_to_int (s);
return i == 0 || i == 1;
Interval
ly_scm2interval (SCM p)
{
- return Interval (scm_to_double (scm_car (p)), scm_to_double (scm_cdr (p)));
+ return Interval (scm_to_double (scm_car (p)),
+ scm_to_double (scm_cdr (p)));
}
Drul_array<Real>
/*
ALIST
*/
-
-bool
-alist_equal_p (SCM a, SCM b)
-{
- for (SCM s = a;
- scm_is_pair (s); s = scm_cdr (s))
- {
- SCM key = scm_caar (s);
- SCM val = scm_cdar (s);
- SCM l = scm_assoc (key, b);
-
- if (l == SCM_BOOL_F
- || !ly_is_equal (scm_cdr (l), val))
-
- return false;
- }
- return true;
-}
-
SCM
ly_alist_vals (SCM alist)
{