$
는 사용자 정의 연산자에서 허용되지만, 운영자 이름은 다음과 같은 오류가 나타납니다 당신은 $$
, <$>
또는 인스턴스 ~$%
을 위해 사용하려고하는 경우 : 명확하게
error FS0035: This construct is deprecated: '$' is not permitted as a character in operator names and is reserved for future use
$
를 또한 '$'에있다이라는 이름이 붙어 있지만 작동하는 이유는 무엇입니까? 즉 :
let inline ($) f y = f y
// using it works just fine:
let test =
let add x = x + 1
add $ 12
내가 온라인 예제에서 분명히 운영자의 특정 종류로 $
많이 참조하십시오. $
(즉, 하스켈 또는 OCaml)에 대한이 치료 또는 역할은 무엇이며 <$>
은 허용 된 경우 어떻게해야합니까 (편집)?
op_DollarDollar
과 같은 기능을 생성하여 시스템을 속일려고해도 호출 사이트에서 구문 검사가 수행됩니다. 비록 예를 들어,이 트릭은 다른 (법적) 사업자와 함께 작동합니까 :이 시점 주위 F# specification에 약간의 불일치가있다
// works
let inline op_BarQmark f y = f y
let test =
let add x = x + 1
add |? 12
// also works:
let inline op_Dollar f y = f y
let test =
let add x = seq { yield x + 1 }
add $ 12
네, F #에서 표준''<$>''연산자를 정의 할 수 없습니다. 우리는 이러한 통신 수 있도록 요청을 제출해야합니다. – Gustavo
':'도 목록에 있습니다. ['$'] (https://github.com/Microsoft/visualfsharp/blob/6afc4f9776a5dba903ca6b11965a206fb8bc23d8/src/fsharp/lex.fsl#L117) 및 [':'] (https://github.com/Microsoft/visualfsharp) /blob/6afc4f9776a5dba903ca6b11965a206fb8bc23d8/src/fsharp/lex.fsl#L115) –
@guy, for':'':>'와':?>'는 무시할 수 없으므로 다소 이해합니다. ':'에 대해서도 같은 말을 할 수 있지만,'@'는 오버라이드 가능하고'..' 역시 (놀랍지 만 사실이기 때문에)'::'는 콜론과 관련된 보호 때문에 존재하지 않는다고 가정합니다 연산자. – Abel