2011-10-18 14 views
21

Backtick operatörlerinin sabitliği nedir? Bu kodda Örneğin Backtick operatörlerinin sabitliği?

Real World Haskell den:

ghci> (1+) `fmap` [1,2,3] ++ [4,5,6] 
[2,3,4,4,5,6] 

Bu ters çentik işareti `fmap`++ ancak none is given by GHCi daha yüksek sabitliği vardır ortada. the Haskell Report ait

+1

@ dabe4420 BTW, Bu hata yalnızca REPL'de tanımlanan işlevlerdeki düzeltmeyle ilgili bildirimleri etkiler. İyi çalışıyor 'f' \ 'elem \' "abc" ++ "ijk" 'gibi bir şeyi karşılaştırın. – fuz

cevap

21

§4.4.2

Herhangi operatörü fixity beyanı 9

"Herhangi operatör" infixl olarak kabul ters tırnakların normal işlev adlarını içerir eksik olduğunu belirtmektedir.

Sizin örnek çünkü ++ eylemler fmap sonucuna, `fmap`++ daha yüksek sabitliği var olduğunu göstermektedir.

+4

Bu işleçler için sabitliği belirtebileceğinden bahsetmeye değer. Örneğin, '1 + 2 \' const \ '5 = 3', ancak' 1 + 2 \ 'div \' 5 = 1'. – Rotsor

+4

@Rotor: Örneğiniz bir örnek değil çünkü '' '' '' '' '' '' '' '' '' '' '' '' '' ın sabitliği, ''' '' '' '+' 'ifadesiyle aynı olsa bile,' 1 + 2 \ 'const \' 5' ifadesinin değeri 3 olur. \ '. –

+4

Oh, nasıl yapabilirim? '2 \' div \ '1^2 = 2' ve' 2 \ 'const \' 1^2 = 4' örnekleridir. – Rotsor

İlgili konular