関数型プログラミング

JavaScriptと関数型プログラミング

私がJavaScriptが好きになったきっかけのひとつは、JavaScriptにおける関数は第1級オブジェクトだということを知ったことだったと思います。要はJavaScriptでは関数を変数に代入したり、関数の引数や戻り値に関数を使ったりできるというわけですね。そのためJavaScriptではオブジェクト指向プログラミングだけでなく、関数型プログラミングも可能となっています。

数年前からエンジニ

もっとみる

こわくない関数型プログラミング (12) DBから読み込んでオブジェクト返すやつ

今回は、Webアプリを開発していたら必ず通る道であるところの、DBから値を読み込んで画面に表示する機能について考えます。

サンプルプログラム

話をできるだけシンプルにするためReactとかVueとかイマドキのフロントエンドではなく、レスポンスボディとしてHTMLを返す昔ながらのサンプルアプリをJava14 + SpringBootで作りました。

日曜始まりの一般的なカレンダーの上に、DBに保

もっとみる

こわくない関数型プログラミング (11) なぜmapやreduceやfilterなのか〜後編

前回の続きです。

前回のおさらい:FizzBuzzの大部分がテストできた😃 

JavaでFizzBuzzを書いて、Stream APIを利用するとロジックのほとんど全部を純粋関数にできて、テスト可能になりました。でも、なんかモヤモヤしませんか、という内容でした。

・言うてもforループなんかで間違えなくない?
・IntStream.rangeClosed 呼ぶとかってforループより面倒く

もっとみる

こわくない関数型プログラミング (10) なぜmapやreduceやfilterなのか〜前編

関数型プログラミングといえばmap、reduceという風潮ありますね。forループをやめてmapやreduceや再帰を使えみたいな。

今回の記事では、関数型プログラミングの中でmap(やreduceやfilterなど例の有名な関数たち)が果たす役割について、僕なりに「こう位置づけてみたら学習意欲が多少湧くんじゃないか」という説明をしてみたいと思います。

あくまでも僕なりの説明です。関数型の偉い

もっとみる

#6 条件分岐 / パターンマッチ

はじめに

前回は if式 による条件分岐を学習しました。

今回は F# でよく利用されるもうひとつの条件分岐方法である、パターンマッチについて学習していきます。

パターンマッチ も if式 を使った条件分岐と同じように、「もし ○○ だったら △△ をする。」というような特定の条件を元に実行する処理を変えることができます。

パターンマッチの場合には、複数あるパターンのリストの中から合致する

もっとみる

[Python] 関数型プログラミング

関数・引数・返り値(基礎)

・関数 : 複数行のプログラムをまとめて実行
・引数 : 関数に渡される変数(ex.1, ex.3)
・返り値 : 関数内での処理結果を関数外に渡すときに設定(ex.2, ex.3)

# 文法1_関数の定義def 関数名(): 関数を呼び出したときのプログラム# 文法2_引数の定義def 関数名(x): 関数を呼び出したときのプログラム関数名(a)# x

もっとみる

第4回 FunFunFunctional 参戦記録

こんばんは。ねりあです。

昨日は FunFunFunctional というLTイベントに参加してきたので、レポートを書きたいと思います。

まず最初に全体の感想述べておくと、すごく楽しかったです。
最近関数型言語を触れたばかりなので、知らないことが多かったですが、聞いていて全くわからないということはなく、首を縦に振りながら聞くことができました。

全てのLTがとても良かったのですが、特に印象に残

もっとみる

#5 条件分岐 / if式

はじめに

私たちは常日頃から取捨選択をしながら生きています。

「○○ だったら、△△ をやろう」だったり、
「○○ だから、△△ しよう」のようなことを、ごく当たり前に行っています。

F# の世界でも同じように、「もし ○○ だったら △△ をして、そうでなかったら ×× をする」といったような 特定の条件 を元に実行する処理を変えることができます。

これを 条件分岐 といいます。

今回

もっとみる

#4 入力 / 出力

はじめに

競技プログラミングは「特定の値を受け取って、それを元に何らかの処理をした結果を表示する」ことで成否が判定されます。

ここでの「特定の値を受け取る」ことを "入力" と言い、「結果を表示する」ことを "出力" と言います。

今回は F# での 入力 / 出力 の方法について学んで行きましょう。

出力

それでは、まずはじめに 出力 について学んで行きます。気づいている方も多いと思い

もっとみる

#3 値の種類

はじめに

今回は F# でのプログラミングにおいて欠かすことのできない "型" について学んでいきます。

型 とは、プログラムの中で扱う 値の種類 のことを言います。算数・数学で 整数 や 実数 などの 数字の種類 を学んだと思いますが、F# の 型 についてもこれらの延長線上の話にすぎないので難しく考えずに学習を進めてください。

型の種類

F# で扱える 基本的な型 には以下のようなもの

もっとみる