Google翻訳で訳しましたが、分かりづらいとこもあるようです。
最後のevenNumberSquareだけ、ほんの少しだけ、付く加えました。もとの参考したコードでは”%d”で出力してましたが、どうやらListでは通用しないようです。削除したら、エラーは出ませんが、4項目以降は省略です。
”%A"指定で出力すると省略されません。しめしめ。(笑)
cametan_42さんのアドバイスではmatchがキーポイントということです。mapとかが関数型プログラミングでは必須の知識なんですね。Rubyでもcollectとか有ったのですが、多分F#のmapと同じだったと思いますが、使わなくてもなんとかなりましたが、関数型プログラミングでは、そうではなく必須のようです。違うかもしれませんけど(苦)
そうです。必須ですね。
mapとreduce(あるいはfold_leftとかfold_right)を使いこなせるかどうか、ってのが関数型言語を攻略する決め手、です。
両者ともforやwhileなんかの低レベルの反復を抽象化しています。
代入が出来ないので、SWAPはどうするの?関数を見たことは有るのですが、理解は出来ませんでした。
ループがある = いつもループに頼る、ってわけじゃないです。
単純な計数反復は「メンドクサイ」「低レベル」操作です。
そこを如何に避けて「データ丸ごと処理するのか」と言うのが抽象化で、そのためにmapやfoldと言う高階関数があります。