0
A
答えて
2
と同等ですが、あなたは何かを行うことができます以下のような:
let (!?) p (x:obj) =
x.GetType().GetProperty(p).GetValue(x)
let four = !?"Length" [5..8]
これは、リフレクションを使用していますので、それはほど効率的ではありませんですが、それはあなたが探している表現力を与えるかもしれません。
1
kvbのソリューションは、一般的なケース(実行時にプロパティ名を指定できるようにしたい)で動作する唯一のソリューションです。
// Define the 'toto' operator
let inline toto (a : ^a) =
(^a : (member Toto: string with get) (a))
type MyType() =
member __.Toto with get() = "Toto"
// Create an instance of MyType
let t = MyType()
printf "The song is 'Africa', by %s" (toto t)
関連する問題
- 1. RubyはC#と同じですか?オペレータ
- 2. NSubstituteとFSharp - FSharp関数をモックする
- 3. ルビーでは、文字列で置き換えられないシンボルはありますか?
- 4. インスタンス変数とルビーのシンボル(form_for)
- 5. シンプルなスペルチェック方法/ルビーの宝石?
- 6. イベントとFSharp
- 7. FSharpオプションとヌル
- 8. シンプルなオン/オフスイッチャの位置はテキストと同じ行にあります
- 9. オペレータを作成して定義する方法:Fsharpでのベクトル4.1
- 10. 異種タスクと同種タスク
- 11. シンプルなバックグラウンドスライダがフェードあり
- 12. シンプルな検索機能のある種のR
- 13. はPythonでオペレータである
- 14. OWIN認証:非同期メソッドに 'await'オペレータがありません
- 15. FSharpとMicrosoft Office PIA
- 16. 私は「2 & 3、割り当て1」と同じ時間
- 17. シンプルなスレッド同期
- 18. ルビーではありませんキューはスレッドセーフですなぜキューは同期していませんか?
- 19. 反応するネイティブのためのシンプルな同期ストレージオプションはありますか?
- 20. iPhone DropBox APIとのシンプルな同期
- 21. シンプルなマルチスレッドのヘルプ? C++、WaitForSingleObjectと同期
- 22. FsharpインタラクティブにPythonヘルプ機能がありますか?
- 23. ルビー「リターンはゼロでない限り、」イディオム
- 24. ルビー|| =同等
- 25. はfsharpのtypeofと一致します
- 26. AMP(Accelerated Mobile Pages)はangular2と互換性がありますか?
- 27. PHP:Not-equalオペレータとNot-identicalオペレータはどのように動作し、同等か等しいオペレータよりも高速ですか?
- 28. AMP: 'amp-social-share'タグは 'amp-sidebar'タグの子孫として表示されないことがあります。どうして?
- 29. Fsharpインタラクティブ府
- 30. Fsharpレコードのオプションパラメータ
:あなたはコンパイル時にプロパティの名前を知っているし、あなたもする場合はプロパティは、任意の入力に存在していることを必要と
しかし、あなたはそうのようなF#の静的な制約を使用することができますこれは本当に私のpovのlangageにはありません。 rubyではnamelist.map(&:length)になります。非常に簡潔です。 – nicolas
@Nicolas - 間違いなく、明示的なラムダを避けるのが良いことがあることは間違いありません。もちろん、プロパティの代わりにレットバインド関数を使用する場合は、それを行うことができます(例えば、 'namelist |> List.map length')。 – kvb
キースが言ったように、いいえ、これについての構文はありません。それはいいだろう。 – Brian