by shigemk2

当面は技術的なことしか書かない

ポイントフリースタイル

関数合成 - by shigemk2

関数合成の別の使い方
ポイントとは、fn x = f (g x)のような関数定義に登場する一時変数xのことである。
このポイントを使わないで関数を定義するスタイルなので、
ポイントフリースタイルと呼ばれる。

fn = ceiling . negate . tan . cos . max 50

結果

Main> fn 50
-1
Main> fn 30
-1
Main> fn 20
-1
Main> fn 200
0
Main> fn 360
1
Main> fn 270
-1
Main> fn 330
2

奇数の平方数で10000より小さいものの総和

-- oddSquareSum :: Integer
-- oddSquareSum = sum (takeWhile (<10000) (filter odd (map (^2) [1..])))

oddSquareSum :: Integer
oddSquareSum = sum . takeWhile (<10000) . filter odd $ map (^2) [1..]

ポイントフリースタイルとかを使うと、括弧の数が劇的に減る。