2017-10-07 24 views
-1

こんにちは私はOcamlの関数リストに取り組んでいます。なぜこのエラーが出ますか?OCaml:リスト関数のエラー

Error: Syntax error 
# let headOf lst= 
    match lst with 
    |??[ ] -> failwith "harun" 
Warning 3: deprecated: ISO-Latin1 characters in identifiers 
+3

ここに貼り付けたコードには2つの疑問符があります。ほとんどの場合、これは、実際のコードのその場所にはかなり奇妙な文字があるからです。これは、構文エラーと奇妙な文字に関する警告の両方の原因になる可能性が非常に高いです。 –

+0

いいえ私はそれに疑問符を書きませんでした。私が別の行を過ぎると、このエラーが出ます。 –

+2

疑問符は、ほぼ確実に問題の症状です。あなたはこれ以上の助けになるほどの情報を提供していません、ごめんなさい。私の提案は、新しいソースファイルから始め、あなたのソースファイルのための簡単な文字エンコーディングを使用していることを確認することです。 ASCII以外の文字が文字列定数とコメントでのみ発生する限り、UTF-8を使用する必要があります。純粋なASCIIファイルで始めることもできます。 –

答えて

0

ご入力エンコーディングが、その後何をやっていることは時々改行なしスペースを入力され、ISO-LATIN-1である場合。これらは空白のような非ASCII文字で、文字コードは160です。それらをすべて削除し、通常のスペース(文字コード32)に置き換える必要があります。

あなたは時々あなたは、特にそれらを求めずに非破り、スペースを入力する入力システムを使用している場合は、

更新

:-)のOCamlを操作するためのさまざまな入力システムを使用する必要があります

実際には、私がOption-Space(iTOS2 on macOS 10.12.4)を入力すると、入力システムは改行されないスペースを入力します。これは次のようになります:

# let f x��= 14;; 
Warning 3: deprecated: ISO-Latin1 characters in identifiers 
Error: Illegal character (\160) 

私の場合の解決策は決してOption-Spaceと入力しないでください。タイプスペース(オプションキーなし)。