Информация об изменениях

Сообщение Re[8]: Сплошное расстройство (Nemerle or Racket?) от 07.10.2019 10:16

Изменено 07.10.2019 10:22 AlexRK

Re[8]: Сплошное расстройство (Nemerle or Racket?)
Здравствуйте, Ikemefula, Вы писали:

I>
I>const f:(a:any)=>any = (a:string) => 5
I>


Увы, это не "любая функция". У "любой функции" (top) вход должен быть максимально узким, а выход — максимально широким. А у "никакой функции" (bottom) наоборот — вход самый широкий, а выход самый узкий. Кроме того, количество аргументов должно быть произвольным, как минимум на входе (а если язык поддерживает множественные выходные аргументы — то и на выходе тоже).
Re[8]: Сплошное расстройство (Nemerle or Racket?)
Здравствуйте, Ikemefula, Вы писали:

I>
I>const f:(a:any)=>any = (a:string) => 5
I>


Увы, это не "любая функция". У "любой функции" (top) вход должен быть максимально узким, а выход — максимально широким. А у "никакой функции" (bottom) наоборот — вход самый широкий, а выход самый узкий. Кроме того, количество аргументов должно быть произвольным, как минимум на входе (а если язык поддерживает множественные выходные аргументы — то и на выходе тоже).

UPD. Ах да, изначально я сказал не про "любую функцию", а про "функцию с любым входом и/или выходом", что, конечно, не одно и то же (хотя в голове я имел в виду именно первый вариант). Но возражение про количество аргументов все равно остается в силе.