機能します。手伝ってくれますか?コメント欄で述べたように、より興味深いものにするために型を変更ランク3種類は、私はこのランク3種類の関数定義を持っている例
0
A
答えて
3
f3 :: ((forall a. a -> a) -> Int) -> Bool -> Bool
f3 f b = (f id == 3) && b
f3_ex :: Bool
f3_ex = f3 f True where
f :: (forall a. a -> a) -> Int
f g = g 3
:
f4 :: ((forall a. a -> a -> a) -> Int) -> Bool -> Bool
f4 f b = (f const == 3) && b
f4_ex :: Bool
f4_ex = f4 f True where
f :: (forall a. a -> a -> a) -> Int
f g = g 3 5
f5 :: ((forall a. a -> a -> a) -> Int) -> Bool -> Bool
f5 f b = f (if b then const else const id) == 42
f5_ex :: Bool
f5_ex = f5 f True where
f :: (forall a. a -> a -> a) -> Int
f g = g 3 5 + 39
ここf
は、タイプ(Int, Int)
本質的f const
によって与えられる第1成分とf (const id)
又はによって与えられる他のものです同等にf (flip const)
。
関連する問題
- 1. 高いランク付けimpredicative種類
- 2. 3種類
- 3. 3種類のテキストアライメントプロパティを持つh1
- 4. Pythonの3種類のヒント
- 5. バインディングはオプションの種類スウィフト3エラー
- 6. モバイルドキュメントの種類定義
- 7. 私はアドレスの2種類を持っているのPython
- 8. は、私は、テンプレートの種類を持っている与えられたテンプレートの種類
- 9. 私は、次のデータフレームを持っている年と種類
- 10. UML Designerは、未定義の種類
- 11. Djangoで3種類のユーザーを持つには?
- 12. 従属ドロップダウンリスト3種類のテーブルのリスト
- 13. ウェブアプリケーション用の3種類のユーザー
- 14. 3種類のアラームを設定してください
- 15. 私は以下のような情報の3種類のセットを持つデータファイルを持っている
- 16. ckeditorフルページプレビュー用に3種類のボディスタイル
- 17. 3種類の衝突体? Swift3 + Spritekit
- 18. 関数の引数でエラーの種類を定義します。
- 19. 種類の不一致私はこのコードを持っているのXPages
- 20. は、特定の種類
- 21. 種類エラー:collection.groupはここ
- 22. (.net)デザインの種類の種類
- 23. Enumの種類Enumの種類
- 24. Python-Configurationファイルの種類を取得してランク付けしますか?
- 25. 私は、文字列の種類持って
- 26. 複数種類
- 27. 種類は、「種類」タイプとのトラブルを有するタイプのラムダ
- 28. 種類は
- 29. archiveBaseNameは種類
- 30. オブジェクトの種類の定義方法
最初の引数をすべて無視します: 'f3 _ = id'。 – Alec
多少複雑ですが、おそらくすべてのパラメータが定義されています。 – Randomize
ここに、事があります。 a - > a 'は1つの(発散しない)メンバー: 'id'のみを持つ。それで '(for a a - > a) - > Int'の議論をするのは面白いことではありません。あなたはすでに' id'だけしか知りませんので、 '(forall a。a - > a ) - > Int'はある一定の関数でなければならない。 f3の興味深い(分岐しない)実装と 'f3 ':: Int-> Bool-> Bool'の実装の間には、双方向性があります。 – Alec