「>>」を使用せずに2つの関数を同じ文字列に適用する方法
質問
私はこのような機能を書いています。
func :: IO()
func = putStr print "func = putStr print"
私はそれが間違っていることを知っていますが、アイデアは私が欲しいということです putStr
その後、文字列に適用されます print
同じ文字列に適用されます "fun = .."
出力が次のようになります。
func = putStr print "func = putStr print"
これは私の関数定義と同じです。ありがとう
解決
一般的なタイプに静的なフィールドを持つことは問題ありません。私の推測は、あなたがそれを認識していなかった場合には、R#はあなたがただ警告しているということです。
それ以来の例:
using System;
public class Generic<T>
{
// Of course we wouldn't normally have public fields, but...
public static int Foo;
}
public class Test
{
public static void Main()
{
Generic<string>.Foo = 20;
Generic<object>.Foo = 10;
Console.WriteLine(Generic<string>.Foo); // 20
}
}
.
参照できるように、Generic<string>.Foo
はGeneric<object>.Foo
からの異なるフィールドです。
他のヒント
あなたが「使わずにどこに行くのかわかりません >>
「パート(それが本当にポイントの使用である場合 do
-notation)、ただし、同じ入力に順番に2つの関数を適用するヘルパー関数を簡単に書き込むことができます。
tee f g s = f s >> g s
func = tee putStr print "..."
また、文字列を繰り返すことを避けるために、ローカル変数 let
また where
おそらく最も簡単でしょう:
let s = "..."
in putStr s >> print s
あなたはこのようにそれをすることができます:
doActions str actions = mapM_ ($ str) actions
所属していません StackOverflow