3要素タプルの最初の要素を削除する方法があるので、この目的のために別の関数を作成しなくても2要素タプルを取得できますか?3要素タプルの最初の要素を削除する
(A、B、C) - >(B、C)
基本的に私は3要素タプルを作成する機能を、使用する必要があり、その後、私は関数を使用する必要がその最後の2つの要素を使用します。
ありがとうございました。
3要素タプルの最初の要素を削除する方法があるので、この目的のために別の関数を作成しなくても2要素タプルを取得できますか?3要素タプルの最初の要素を削除する
(A、B、C) - >(B、C)
基本的に私は3要素タプルを作成する機能を、使用する必要があり、その後、私は関数を使用する必要がその最後の2つの要素を使用します。
ありがとうございました。
ご質問ほとんど必要な機能そのものを持っています!
\(a,b,c)->(b,c)
が必要な機能です。これは、オンザフライで定義された "匿名"関数です。名前を付ける必要はありません。あなたは
someFunc :: someType -> (Int, Char, Bool)
を持っているのであれば、たとえばあなたはsomeFunc someValue
の第二と第三成分を得るために
(\(a,b,c)->(b,c)) (someFunc someValue)
を行うことができます。
let
のようないくつかの構文構造でパターンマッチングを行うことができます。だから、あなたのような何かができる:
let (a, b, c) = triTuple in fn (b, c)
あなたはcase
を使用することができます。関数を作成する*
case x of (a, b, c) -> (b, c)
は、これは実際に私が考える最初のものだったが、それは*です。私は、このような問題に対しては、パターンマッチング( 'let'または' where')が良いことを提供する何かを使うことを考えています。 –
@TikhonJelvis:True。しかし、関数が "インライン"で定義され、別の名前を導入していないので、あまりにも悪くないと思いました。 :-) – Prateek
ハ、それは実際にはまさに私の論理だった。しかし、その後、私はいくつかの教師やグレーダーが無意識のうちにいかがわしいかを思い出しました。 –