<?php namespace eMacros\Runtime\Arithmetic;
use eMacros\Runtime\GenericFunction;
class Division extends GenericFunction { /** * Obtains the result of dividing the first element on a list by the rest of the elements. * Usage: (/ 4 2) * Special case: (/ 5) = 1/5 * Returns: number * (non-PHPdoc) * @see \eMacros\Runtime\GenericFunction::execute() */ public function execute(array $arguments) { if (empty($arguments)) { //no parameters throw new \InvalidArgumentException("Division: At least 1 argument is required."); } //emulate CLISP: (/ 4) = 1/4 if (!isset($arguments[1])) { return 1 / $arguments[0]; } //get first value $result = array_shift($arguments); foreach ($arguments as $value) { $result /= $value; } return $result; } }
|