$
özel operatör izin, ancak operatör adı aşağıdaki hatayı alırsınız gibi $$
, <$>
veya örneğin ~$%
için kullanmaya çalışırsanız: açıkça
error FS0035: This construct is deprecated: '$' is not permitted as a character in operator names and is reserved for future use
$
da '$' sahip olduğu ismi, ama işe yarıyor, neden? yani .:
let inline ($) f y = f y
// using it works just fine:
let test =
let add x = x + 1
add $ 12
Online örneklerde ve görünüşe operatörün belirli bir tür olarak $
çok görüyoruz. Ne (yani Haskell veya OCaml değil) bu spcial tedavi veya $
için rolü olduğunu ve (edit) izin verildi eğer <$>
ne yapmalıyım?
op_DollarDollar
gibi bir işlev oluşturarak sistemi kandırmaya çalışmak, uçmazsa, sözdizimi denetimi çağrı sitesinde de yapılır. Gerçi bir örnek olarak, bu hüner diğer (yasal) operatörleri ile çalışır: bu nokta etrafında F# specification bazı tutarsızlık var
// 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
Evet, aynı standart olan '' <$> '' operatörünü F # olarak tanımlayamıyoruz. Bu operatörlere izin vermek için bir istek göndermeliyiz. – Gustavo
':' ayrıca listede yer alıyor. ['$'] (https://github.com/Microsoft/visualfsharp/blob/6afc4f9776a5dba903ca6b11965a206fb8bc23d8/src/fsharp/lex.fsl#L117) ve [':'] (https://github.com/Microsoft/visualfsharp /blob/6afc4f9776a5dba903ca6b11965a206fb8bc23d8/src/fsharp/lex.fsl#L115) –
@guy, ':' Ben biraz anlıyorum, çünkü ':>' ve ':?>' muhtemelen büyük olasılıkla geçersiz kılmamalıdır. Ben aynı söyleyebiliriz '::' fakat '@' beri sadece değil çünkü kolon ile ilişkili korumalı taşımaktadır '::' varsayılabilir ..' çok (şaşırtıcı ama gerçek) 'dir 'geçersiz kılınabilir ve operatörler. – Abel