Идея вдохновлена тем фактом, что операторы фактов, такие как +, -,% и т. Д., Могут рассматриваться как функции с одним или двумя переданными аргументами, без побочных эффектов. Предполагая, что я или кто-то еще пишет язык, который останавливает передачу более двух аргументов, а также работает только через возвращаемое значение:
а) приведет ли такой язык к более легкому пониманию кода?
б) будет ли поток кода яснее? (вынуждается делать больше шагов, с потенциально меньшим количеством «скрытых» взаимодействий
c) ограничения сделали бы язык чрезмерно громоздким для более сложных программ.
d) (бонус) любые другие комментарии о плюсах / минусах
Замечания:
Два решения все еще должны быть приняты - во-первых, разрешить ли пользовательский ввод вне main () или его эквивалента, а также то, что будет правило относительно того, что происходит при передаче массивов / структур. Например, если кто-то хочет, чтобы одна функция добавила несколько значений, он мог бы обойти ограничение, связав его в массив. Это может быть остановлено, если не разрешить массиву или структуре взаимодействовать с самим собой, что позволит вам, например, разделить каждое число на различную величину, в зависимости от его положения.
result = f(a)(b)…(z)
. Это имеет место в семействе языков ML, таких как Haskell, но также концептуально в других языках, таких как Lisp, JavaScript или Perl.