2014-09-12 26 views
7

bağlayamıyorum. F # i'de kolayca (+) veya (*) operatörlerini bağlayabilirim. Neden aynısını ben yapamıyorum (**)?Neden (**) operatörü

> let s = (+);; 
val s : (int -> int -> int) 

> let f = (**);; 
    let f = (**);; 
    ------------^^ 
C:\Users\mqrx84\AppData\Local\Temp\stdin(4,13): error FS0010: Incomplete structured construct at or before this point in binding 

cevap

15

Çünkü (**) çoklu hat yorumlar için kullanılmaktadır. Parantezleri operatörden boşluk ile ayırmak gerekir. * ile başlar diğer operatörleri tanımlamak için let f = (**);;

, boşluk açılış parantez uymalı; Aksi (* Bir yorumun başlangıcından olarak yorumlanır: * + *) xy = (x + y) spec itibaren

(let - http://fsharp.org/specs/language-spec/

+0

Yani basit :) Şimdi bekliyorum cevaplamak için 10 dakika cooldown böylece kabul edebilirim. –

+2

Bir kenara göre, bu işe yarayan garip bir durumdur. F = (*) ' –

+4

@ GrzegorzSławecki Derleyici, kendi deyimiyle 'LPAREN_STAR_RPAREN' özel bir durum olarak görünüyor. –