LoginSignup
4
0

More than 5 years have passed since last update.

Haskell で直角三角形をなす三辺を任意の数出力する

Posted at

概要

Haskell を触ってみて、掲題のことをやって感動したのでメモ。
関数型の良さを最初に実感した例。

本編

-- 3辺を短い順に出力
rightAngleTriangle x = take x [[c, b, a] | a <- [1..],
                                           b <- [1..a],
                                           c <- [1..b],
                                           a^2 == b^2 + c^2]

使ってみると

ghci> rightAngleTriangle 10
[[3,4,5],[6,8,10],[5,12,13],[9,12,15],[8,15,17],[12,16,20],[15,20,25],[7,24,25],[10,24,26],[20,21,29]]

手続き型言語での実装をイメージして、それを↑と比較すると、あまりの違いに愕然とする。

4
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0