haskell-jp / questions #103 at 2023-05-14 09:40:00 +0900

```fix1 :: ((b -> c) -> b -> c) -> b -> c
fix1 = fix
fix :: (a -> a) -> a
fix f = flip fix1 f $ \g h -> _```
`fix`を`fix1`で定義したいのですが,上の`_`に当てはまる式として以下のどれが適切でしょうか?
```1. f $ g f
2. f $ g h
3. h $ g f
4. h $ g h```
いずれも下記のテストを通過しました.上記1-4のいずれかが失敗するテストも併せて募集します.
```print $ fix $ const () -- ()
print $ flip fix 5 $ \rec n -> if n == 0 then 1 else n * rec (pred n) -- 120```