それを行う関数を作成する必要がありf:: Log->[String]
ます (((o, i ,d),s) = [(o, i ,d)]
type Log = (Plate, [String])
type Plate = (Pin, Pin, Pin)
type Pin = (Char, Int)
それを行う関数を作成する必要がありf:: Log->[String]
ます (((o, i ,d),s) = [(o, i ,d)]
type Log = (Plate, [String])
type Plate = (Pin, Pin, Pin)
type Pin = (Char, Int)
このようなページにいる場合は、関心のある関数の横にある、モミの右側にある [ソース] をクリックします。
関数を調べる必要がある場合は、Hayo! Hoogleは上記のようなドキュメント ページにリンクします。
ただし、注意すべき重要なことは、show
1 つの定義がないことです。(大文字の "S" を持つ) 型クラスshow
のすべてのデータ型に対して定義された関数です。Show
たとえば、Show 型クラスの完全なソースは次のとおりです。Show は型クラス内で just として定義されていますshow :: a -> String
。しかし、「instance Show Bool」または「instance Show Int」を検索すると、特定の定義が見つかります。
show
質問の 2 番目の部分については、新しい型の関数を取得する最も簡単な方法は、単にその下に記述deriving (Show)
することです。例えば、
data Foo = Foo Int Int
deriving (Show)
show
これで、 type のデータで使用できますFoo
。
g :: Log -> [String]
g (plate, _) = [show plate]
この種の情報を見つけるには、hoogleを使用します。
例: http://www.haskell.org/hoogle/?hoogle=show
リストで目的の機能を見つけたら、クリックするとSource
、ページの右側にリンクが表示されます。
NBこれは元の質問に対する答えです:
haskell の定義済み関数のコードはどこで確認できますか?? 主に関数 SHOW?
Hoogle を使用して Prelude (およびその他のモジュール) で定義された関数を検索できるのは事実ですが、ソース コード自体は Hackage にあります。
Hackageは Haskell パッケージのデータベースです。そこから新しいパッケージをダウンロードしたり、データベース内のすべてのパッケージの Haddock ドキュメントを表示したりできます。
これは、標準の Prelude の Haddock ページです。Prelude モジュールによってエクスポートされる型クラス、データ型、型、および最上位関数について説明します。各定義ヘッダーの右側には、「ソース」というリンクがあります。これをクリックすると、表示しているモジュールのソース コードのオンライン コピーに移動できます。
プレビューでは、まったく別の質問をしていますが、プレビューでは、実際には元の質問がこの投稿から編集されています。
あなたの新しい質問は不明ですが、このソリューションはあなたの例で出力を生成するために機能します。
> [fst ((('O',0),('I',0),('D',1)),"O->D")]
[(('O',0),('I',0),('D',1))]
ちなみに、二重引用符の代わりにリスト表記を使用してString
s を識別していると思うので、上記で修正しました0->D
。したがって、代わりにこれを試すこともできます。
> show (fst ((('O',0),('I',0),('D',1)),"O->D"))
"(('O',0),('I',0),('D',1))"
これが機能するのは、既にインスタンスを持つデータ構造に対して(type
宣言で の代わりに を使用して) 型シノニムのみを定義しているためです。data
Show