`seq` для частично примененных функций

Допустим, я есть следующее:

f :: a -> b -> c
g :: b -> c
g = f 10

Теперь скажем, fна самом деле:

f x y = f1 x + y

Будет ли:

g `seq`...

фактически оценивать f1 10, поэтому позже при запуске

g 9

это на самом деле просто простое дополнение?

Если нет, то есть ли способ «оценить» части частично примененной функции?

Я ищу универсальное решение, которое не зависит от знания того, как работают fи g.

5
задан Clinton 16 April 2012 в 08:03
поделиться