新しいアカウントで始めました。

身の回りの出来事や写真が中心です。

F#イジってみました。Functionsその6。List.map

2022-06-27 15:14:02 | F#

Google翻訳で訳しましたが、分かりづらいとこもあるようです。

 最後のevenNumberSquareだけ、ほんの少しだけ、付く加えました。もとの参考したコードでは”%d”で出力してましたが、どうやらListでは通用しないようです。削除したら、エラーは出ませんが、4項目以降は省略です。

”%A"指定で出力すると省略されません。しめしめ。(笑)

cametan_42さんのアドバイスではmatchがキーポイントということです。mapとかが関数型プログラミングでは必須の知識なんですね。Rubyでもcollectとか有ったのですが、多分F#のmapと同じだったと思いますが、使わなくてもなんとかなりましたが、関数型プログラミングでは、そうではなく必須のようです。違うかもしれませんけど(苦)


コメント (4)    この記事についてブログを書く
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« かぼちゃとシモツケの花が咲... | トップ | F#イジってみました。VSCode... »
最新の画像もっと見る

4 コメント

コメント日が  古い順  |   新しい順
関数型プログラミング (cametan_42)
2022-06-27 17:31:36
> 関数型プログラミングでは、そうではなく必須のようです。

そうです。必須ですね。
mapとreduce(あるいはfold_leftとかfold_right)を使いこなせるかどうか、ってのが関数型言語を攻略する決め手、です。
両者ともforやwhileなんかの低レベルの反復を抽象化しています。
reduce分からないです? (isam)
2022-06-27 19:28:00
 前に関数型プログラミングでは、ループが駄目だと思ってましたが、F#でもループは有るようです。VBでもそうですが、制御のカウンタが必要です。関数型プログラミングでは基本代入はないですからね。そこが駄目なんですね。
 代入が出来ないので、SWAPはどうするの?関数を見たことは有るのですが、理解は出来ませんでした。
お礼落ちてました。 (isam)
2022-06-27 19:31:09
cametan_42さん、何度も有り難うございます。
計数反復は低レベル (cametan_42)
2022-06-27 23:25:48
>  前に関数型プログラミングでは、ループが駄目だと思ってましたが、F#でもループは有るようです。

ループがある = いつもループに頼る、ってわけじゃないです。
単純な計数反復は「メンドクサイ」「低レベル」操作です。
そこを如何に避けて「データ丸ごと処理するのか」と言うのが抽象化で、そのためにmapやfoldと言う高階関数があります。

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

F#」カテゴリの最新記事