Ответ находится в спецификации языка. Синтаксис для приложений функций таков:
SimpleExpr ::= SimpleExpr1 ArgumentExprs
ArgumentExprs ::= ‘(’ [Exprs] ‘)’
| ‘(’ [Exprs ‘,’] PostfixExpr ‘:’ ‘_’ ‘*’ ‘)’
| [nl] BlockExpr
Exprs ::= Expr {‘,’ Expr}
Таким образом, аргументами функции могут быть одно или несколько выражений, окруженных (
)
, или один BlockExpr
если функция принимает один аргумент.
Переходя к разделу о блоках , мы находим это:
BlockExpr ::= ‘{’ CaseClauses ‘}’
| ‘{’ Block ‘}’
Block ::= BlockStat {semi BlockStat} [ResultExpr]
Частичные функции определяются с помощью опции CaseClauses
, поэтому они должны быть окружены {
[117 ], чтобы сделать выражение блока. Это выражение блока является действительным аргументом для функции с одним параметром.
Функции, которые принимают несколько параметров, всегда должны использовать (
)
.
Использование libgmp:
GMP является свободной библиотекой для арифметики произвольной точности, воздействующей на целые числа со знаком, рациональные числа и числа с плавающей запятой. Нет никакого практического предела точности кроме тех подразумеваемых доступной памятью в GMP машины, работает...
Начиная с версии 6, GMP распределяется в соответствии с двойными лицензиями, GNU LGPL v3 и GNU GPL v2...
основными целевыми платформами GMP являются Системы типов Unix, такие как GNU/Linux, Солярис, HP-UX, Mac OS X / Darwin, BSD, AIX, и т.д. Это также, как известно, работает над Windows и в 32-разрядном и в 64-разрядном режиме...
Существует несколько библиотек, чтобы помочь Вам сделать это (математика произвольной точности):
Принятие это не связанная работа (т.е. Вы делаете его для забавы, или это - хобби или просто возможность изучить что-то), кодирование библиотеки для математики произвольной точности является относительно интересным проектом. Но если Вы должны абсолютно полагаться на него и не интересуетесь основными деталями, просто пользуются библиотекой.
Существует много библиотек для обработки огромных чисел вокруг. Вам нужна целочисленная или арифметика с плавающей точкой?
Вы могли посмотреть на код, встроенный в Python для задачи.
Вы могли посмотреть на расширения для Perl для задачи.
Вы могли посмотреть на код в OpenSSL для задачи.
Вы могли посмотреть на MP GNU (мультиточность) библиотека - как упомянуто kmkaplan.