function SCM_abs($s) { $x = $s->car; if (Object::is_number($x)) { $value = $x->value >= 0 ? $x->value : $x->value * -1; return Number::new_instance($value); } }
/** * 要素解析 */ private static function parse_object(&$tokens) { $token = array_shift($tokens); if ($token == '(') { return self::parse_list($tokens); } elseif (is_numeric($token)) { return Number::new_instance($token); } elseif (preg_match('/^".*"$/', $token)) { return String::new_instance($token); } else { return Symbol::new_instance($token); } }