-2

それを行う関数を作成する必要がありf:: Log->[String] ます (((o, i ,d),s) = [(o, i ,d)]

type Log = (Plate, [String])

type Plate = (Pin, Pin, Pin) type Pin = (Char, Int)

4

4 に答える 4

5

このようなページにいる場合は、関心のある関数の横にある、モミの右側にある [ソース] をクリックします。

関数を調べる必要がある場合は、Hayo! Hoogleは上記のようなドキュメント ページにリンクします。

ただし、注意すべき重要なことは、show1 つの定義がないことです。(大文字の "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

于 2012-10-07T15:52:34.293 に答える
2
g :: Log -> [String]
g (plate, _) = [show plate]
于 2012-10-07T16:28:36.207 に答える
2

この種の情報を見つけるには、hoogleを使用します。

例: http://www.haskell.org/hoogle/?hoogle=show

リストで目的の機能を見つけたら、クリックするとSource、ページの右側にリンクが表示されます。

NBこれは元の質問に対する答えです:

haskell の定義済み関数のコードはどこで確認できますか?? 主に関数 SHOW?

于 2012-10-07T15:34:43.523 に答える
1

Hoogle を使用して Prelude (およびその他のモジュール) で定義された関数を検索できるのは事実ですが、ソース コード自体は Hackage にあります。

Hackageは Haskell パッケージのデータベースです。そこから新しいパッケージをダウンロードしたり、データベース内のすべてのパッケージの Haddock ドキュメントを表示したりできます。

これは、標準の Prelude の Haddock ページです。Prelude モジュールによってエクスポートされる型クラス、データ型、型、および最上位関数について説明します。各定義ヘッダーの右側には、「ソース」というリンクがあります。これをクリックすると、表示しているモジュールのソース コードのオンライン コピーに移動できます。


プレビューでは、まったく別の質問をしていますが、プレビューでは、実際には元の質問がこの投稿から編集されています。

あなたの新しい質問は不明ですが、このソリューションはあなたの例で出力を生成するために機能します。

> [fst ((('O',0),('I',0),('D',1)),"O->D")]
[(('O',0),('I',0),('D',1))]

ちなみに、二重引用符の代わりにリスト表記を使用してStrings を識別していると思うので、上記で修正しました0->D。したがって、代わりにこれを試すこともできます。

> show (fst ((('O',0),('I',0),('D',1)),"O->D"))
"(('O',0),('I',0),('D',1))"

これが機能するのは、既にインスタンスを持つデータ構造に対して(type宣言で の代わりに を使用して) 型シノニムのみを定義しているためです。dataShow

于 2012-10-07T16:13:39.520 に答える