コンソールから関数の型(flip foldr id
)を取得するにはどうすればよいですか?Haskellの `flip foldr id`の型をコンソールから取得します
-7
A
答えて
3
ghci
の:t
コマンドを使用して、任意の式のタイプを調べることができます。
GHCi, version 7.10.3: http://www.haskell.org/ghc/ :? for help
Prelude> :t flip foldr id
flip foldr id
:: Foldable t => (a -> (a1 -> a1) -> a1 -> a1) -> t a -> a1 -> a1
10
実際にはhaskellには推測作業は含まれていませんので、座ってGHCiの助けを借りてこれを行うのが最善です。
したがって、これらの関与の基本的な種類があり、私たちは最高始めましょうとGHCiの
$ > ghci
GHCi, version 7.10.3: http://www.haskell.org/ghc/ :? for help
Prelude> :t flip
flip :: (a -> b -> c) -> b -> a -> c
Prelude> :t foldr
foldr :: Foldable t => (a1 -> b1 -> b1) -> b1 -> t a1 -> b1
Prelude> :t id
id :: a2 -> a2
を起動。
明示的な親子化を使用すると、foldr :: Foldable t => (a -> b -> b) -> b -> (t a -> b)
は、折り返し関数と関数を返す開始値をとる関数です。
型レベル上のすべての小文字は、(タイプ)の変数なので、私たちは、あなたがflip
関数の最初のパラメータを挿入した
foldr :: Foldable t => (a1 -> b1 -> b1) -> b1 -> t a1 -> b1
************** ** **********
flip :: ( a -> b -> c ) -> (b -> a -> c )
*** ************** **********
flip foldr :: Foldable t => b1 -> (a1 -> b1 -> b1) -> (t a1 -> b1)
心代用を開始することができます - ので、それはに表示されませんがもうタイプシグネチャ。
さらにあなたはid
はとてもそれが私たちに与え代入しそうb1 ~ (a2-> a2)
その後、開始値で見ることができます:
flip foldr id :: Foldable t => (a1 -> (a2 -> a2) -> (a2 -> a2)) -> (t a1 -> (a2 -> a2))
と
flip foldr id :: Foldable t => (a1 -> (a2 -> a2) -> a2 -> a2) -> t a1 -> a2 -> a2
そして、何この手順の素晴らしいところ再び明示的な括弧を省略します - GHCiのすべてのステップをチェックして、あなたの(等式)推論が正しいかどうかを調べることができます。
いくつかの注意事項:
GHCiのは、常に最も一般的な署名を推測しよう - あなたは
foldr :: (a -> b -> b) -> b -> [a] -> b
を期待するならば、GHC-バージョンの後半で7.8よりもあなたが表示されます私が上記に書いた署名。あなたはfoldr :: MyAB a b -> b -> [a] -> b
が正しい専門で、その後type MyAB a b = (a -> b -> b)
を持っているので、もし
type
-aliasesは混乱するかもしれませんが、あなたはおそらくGHCiの中でこれは表示されません。
関連する問題
- 1. Haskell foldr algrebraicのデータ型
- 2. Haskellのfoldrとfoldlの
- 3. foldr in Haskell:混乱
- 4. ハスケルのJavaでのHaskellのfoldr 8
- 5. Haskellで作成された型から値を取得する
- 6. foldl。 foldr関数の構成 - Haskell
- 7. 地図。 foldr関数合成 - Haskellの
- 8. Haskellのループでコンソールから値を読み取る
- 9. Haskellのサブリストを取得します。
- 10. foldrを使用したHaskell foldlの実装
- 11. IDからのIDの取得PHP SDK
- 12. つのテーブルからIDを取得し、
- 13. varchar型からget max idを取得する方法は?
- 14. Haskellの '[String]型の値を取得するには?
- 15. コンソールからファイルパスを取得するC#
- 16. Haskell、ハッシュテーブルから値を取得
- 17. フォームのIDを取得しますか?
- 18. AndroidのListViewのデータベースからIDを取得および取得します。
- 19. TomcatのセッションIDからIPアドレスを取得しますか?
- 20. Google+のURLからアクティビティIDを取得していますか?
- 21. ユーザーIDからLinkedInのプロフィールURLを取得しますか?
- 22. joomlaの名前からカテゴリIDを取得しますか?
- 23. C#のプロパティからデータ型を取得しますか?
- 24. Haskellの数値型について混乱しています
- 25. Javascriptはidから変数からコンテンツを取得します
- 26. foldrを使用してfoldrをforwardに変換します。
- 27. haskellでfoldlの代わりにfoldrを使う
- 28. C#のWebから匿名の型を取得します。
- 29. これは、Haskell foldr関数を記述する正しい方法ですか?
- 30. 入力からIDを取得し、このIDのページにリダイレクト