気がつけば February!!

あれっ? て気がつけば2月になっていました 何だか色々なことがあり、本当に疲れ切ってこの間に時間が流れていることを意識できませんでした

また、「世の中 矛盾に満ちているよなあ」ということがいくつかありました 「もうやってらんない チャブ台ひっくり返してやる」と思うことがたくさんあるのです

そんな中で自分の心はもっと純粋なものに向かいます それは かねてより分からない、難しい、どうとっついて良いのか?? である Haskellへの挑戦です もっとも何回これまでこのような道を歩み途中で挫折して放り出したことでしょう それでも「純粋関数型言語」とか「モナド」あるいは「モノイド」、「ファンクター」「カリー化」などという何だか訳の分からない しかし魅力的な響きの言葉 これを理解したい そのように思い その象徴たる Haskellに挑戦です

Haskellはとても有名な言語ですが、やはり取り付くのは困難とされているものです しかしその先には意識の革命がある筈です もっともほとんど書籍が無いのです 僕が数年前にAmazonで入手した 「すごい HASKELL 楽しく学ぼう」という書籍がほとんど唯一のものです

この本ようやく購入後数年して読み始めました もちろん iPad Proで Kindleで読み出したのですが、一言で言えば「難しい!!」です

このように新しい言語を学ぶ時には実際にプログラムを書いてテストする作業が必要です しかしこれがなかなか動かない!!!

一つの文が動作するようになるために何日間も必要なのです たとえば本にも出ているのですが、「直角三角形の辺の長さを 1から 10CMの間の整数値で求めよ、しかも合計値が 25未満であるもの」というのがあります

これを Cあるいは C++あるいは Javascript、PHPなどで書くのはまず問題ありません ですが Hasellでは

let rightTriangle = [(a, b, c) | c <- [1..10], b <- [1..10], a <- [1..c], a^2 + b^2 = c^2, a + b + c < 25]

となります

しかしこれはエラーが出てコンパイルできません この解決に数日間要しました ばかみたいなことでした それは

a^ + b^ = c^ という文です これは2辺の二乗の和が長辺の二乗に等しいということを表そうとしているのですが、問題は゜ = です これはプログラミングでは代入を表し、イコールではないのです それが間違いだったのです こんなプログラム書く人にとっては当たり前のことを見落とし時間を無駄に使うのです どうも調子悪いです

投稿者: (KAMAKURA & SAPPORO)Dr_Radialist

Expert Interventional Cardiologist and Amateur Computer Programmer

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です