/* Default method for write-object */ static ScmObj write_object_fallback(ScmObj *args, int nargs, ScmGeneric *gf) { if (nargs != 2 || (nargs == 2 && !SCM_OPORTP(args[1]))) { Scm_Error("No applicable method for write-object with %S", Scm_ArrayToList(args, nargs)); } ScmClass *klass = Scm_ClassOf(args[0]); Scm_Printf(SCM_PORT(args[1]), "#<%A%s%p>", klass->name, (SCM_FALSEP(klass->redefined)? " " : ":redefined "), args[0]); return SCM_TRUE; }
static ScmObj sort_list_int(ScmObj objs, ScmObj fn, int destructive) { ScmObj starray[STATIC_SIZE]; int len = STATIC_SIZE; ScmObj *array = Scm_ListToArray(objs, &len, starray, TRUE); Scm_SortArray(array, len, fn); if (destructive) { ScmObj cp = objs; for (int i=0; i<len; i++, cp = SCM_CDR(cp)) { SCM_SET_CAR(cp, array[i]); } return objs; } else { return Scm_ArrayToList(array, len); } }