Haskell:Почему `par` был определен именно так?

parобъявляется как:

par  :: a -> b -> b

Обратите внимание, что первый аргумент отбрасывается. Чтобы использовать par, вам нужно придумывать трюки, например использовать одно и то же выражение несколько раз.

Если его целью является параллельное выполнение a и b, почему он не был определен таким образом?:

par  :: (a, b) -> (a, b)

Берется кортеж из (неоцененных)выражений и возвращаются те же выражения -, пока они потенциально материализуются в фоновых потоках.

Кажется, что последняя модель проще первой. Почему дизайн был выбран именно таким?

5
задан usr 15 April 2012 в 22:28
поделиться