2017-09-28 10 views
3

私はhaskellを初めて使っています。 誰かが私に記号と公式をくれました: m & n = n m しかし、 "&"はghciで読むことができず、インターネットを検索して情報が見つかりませんでした。 &は何を意味するのですか?haskellで "&"は何を意味しますか?

+4

完全なコードの断片を投稿してください。 –

+1

これはghciでも機能します。関数 '(&)'を作成するだけです。 –

+0

私はWillemに同意します。多分あなたは 'let'を忘れたでしょうか? 'let m&n = n m'なら、' 5&(+1) 'は期待通りに6を出力します。 –

答えて

2

(&)演算子はData.Functionパッケージで定義されています。 ghciで使用するには、import Data.Function

を入力する必要があります。投稿した数式の意味で使用できます。同じ

> pi & cos 
-1.0 

> cos pi 
-1.0 
6

これは特別な意味を持たない識別子なので、必要なものを意味します。例えば。

let x = (1,2) 
    & _1 +~ 1 
    & _2 +~ 2 

-- x = (2,4) 

また、これは(彼らは同等だ)m & n = n mのあなたの定義に合う:レンズ&にそうように、便宜上flip ($)として使用されています。他のライブラリであれば何でも使用でき、use a better search engineの場合は多数のライブラリがあります。

+6

BTW(そしてHayooが明らかにしたように)、この '&'の使用は実際に '' Data''Function'の 'base'パッケージで定義されています。(http://hackage.haskell.org/package/base- 4.10.0.0/docs/Data-Function.html#v:-38-)。私は定期的にレンズを持っていないプロジェクトでもこの演算子を使用します。 – leftaroundabout

+0

@leftaroundaboutああ、7.10.1から。私は気付かなかった:) –

関連する問題