2011-09-09 2 views
3

私は数回、さまざまな機能を実装しようとしています、あなたはタイトルとして表示されるメッセージです。私は誰でも私にこのエラーメッセージの一般的な意味(および理由)を教えることができるかどうかを知りたい。私が前に言及したように、私は何度も問題を抱えていて、それを修正することができましたが、まだ正確な理由がないので、特定のコードを投稿しません。あなたは結果を計算式が続くされていないことを結合letを書くときにこのエラーがあるかもしれませんときVisual studio - f# - エラーFS0588:この 'let'に続くブロックは未完成です。 Expect expression

は事前

+0

も参照してくださいhttp://stackoverflow.com/questions/5055946:好奇心のうち

は、次の例ではletが本当に(それはいくつかの意味のある結果を返さなければなりません)式の中で使用できることを示しています/ブロック未完成 – Brian

答えて

12

で最も一般的なケースをいただき、ありがとうございます。 F#では、すべてが何らかの結果を返す式なので、let a = 10と書くと、一般的には有効な式ではありません。それが有効にするには、何かを返す必要があります。

let foo() = 
    let a = 10 
() // return unit value (which doesn't represent any information) 

唯一の例外あなたがだけlet a = 10を書くことができるF#ソースファイルのグローバルスコープである - 例えば、モジュール宣言内またはF#でスクリプトファイル。 (これが上記のfooの宣言が有効な理由です)。

あなたのコードを見ることなく助言を与えるのは難しいですが、letという宣言の後にF#の式が付いていない可能性があります。

let a = 40 + (let a = 1 
       a + a) 
関連する問題