haskell-logo

1: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 00:22:06.401 ID:TtqIanfD0.net
言語何から始めた?
今は何使ってる?

2: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 00:23:19.826 ID:/TbbBPY40.net
関数型のプログラミングってなに?
オブジェクティブ指向のこと?

5: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 00:24:30.038 ID:TtqIanfD0.net
>>2
手続き型じゃない奴

4: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 00:24:15.660 ID:HNQbSXpb0.net
オブジェクト指向でいいよ

8: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 00:25:58.168 ID:TtqIanfD0.net
>>4
オブジェクト指向は飽きた

12: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 00:28:06.566 ID:IznAYHtQ0.net
>>4
キモはオブジェクト指向であることよりも
副作用の有無

10: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 00:26:28.347 ID:/TbbBPY40.net
C#かjava
俺はfortran, C/C++の手続き型から入ったけどな

13: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 00:28:54.977 ID:TtqIanfD0.net
>>10
c#やjavaは関数型じゃない…

24: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 00:32:46.943 ID:/TbbBPY40.net
>>13
関数型って存在自体知らなかったわ・・・
ここら辺の言語はどのへんに需要があるの?

15: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 00:29:51.721 ID:AkxCQjbB0.net
OCaml

27: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 00:33:35.980 ID:TtqIanfD0.net
>>15
やっぱりOCamlか…

18: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 00:31:18.626 ID:/MOLA+Dtp.net
prolog

29: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 00:35:05.379 ID:TtqIanfD0.net
>>18
Prologはまた今度でいいかな…
関数型じゃないし
興味はあるけど…

19: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 00:31:20.412 ID:rSuRGfys0.net
名前はよく見るがどうすると関数型なのかよくわからん

31: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 00:36:00.607 ID:TtqIanfD0.net
>>19
俺もよくわかってない

23: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 00:32:39.582 ID:8AcepkcW0.net
Scalaに行って死んだ会社もあるし関数型って幻想だったんだよ

32: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 00:37:51.279 ID:TtqIanfD0.net
>>23
javaの悪いところが引き継がれたんじゃね?
よく知らないけど

30: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 00:35:40.512 ID:8AcepkcW0.net
こりゃだめだ。なんか盛大な勘違いしてる。。。

34: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 00:38:39.242 ID:TtqIanfD0.net
>>30
そうなの?
関数型って何?

28: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 00:33:41.345 ID:RPfpztyb0.net
haskell

38: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 00:45:41.326 ID:rSuRGfys0.net
関数型って手続き型とはなんか違うの?
手続き型が値と振る舞いがバラバラ過ぎて制御できないならからオブジェクト指向にしたけどやっぱ状態ウザいから持たせるのやめようってのが関数型ってイメージなんだけど
状態ない利点はわかるけどただの逆戻りとは違うの?

39: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 00:48:55.588 ID:TtqIanfD0.net
>>38
手続き型だと上から下に変数や配列、オブジェクトなどの値を書き換えながら処理が進むだろ?
それを関数を組み合わせうことで実現するのが関数型のイメージだと思う。
関数型の定義はよくわからん。

43: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 03:13:16.152 ID:F5AAWIIF0.net
>>38
・手続き型
1つの変数につき1種類の状態を持つ
変数は状態を表すものなので、値を変更できる

・関数型
変数はあくまでも関数呼び出し履歴の別名であり、状態を保持しているわけではない
変数が状態を表すものではないので、「値を変更する」という概念が存在しない

・OOP
状態がどうの、という事を考慮する必要をそもそも排除する
変数のインターフェースだけ考えるようにすること

44: 以下、\(^o^)/でVIPがお送りします 2017/04/04(火) 03:33:40.871 ID:F5AAWIIF0.net
なお、>>43でOOPだけ「型」をつけなかったのは、
OOPかどうかというのは手続き型か関数型かとは全く無関係な概念だから

早い話が、内部的には異なる構造であるかもしれない変数に対して同機能異処理のメソッドを呼び出せればOOPなので、
典型的な(=Java型の)手続き型OOP言語では、
「クラスを継承し、メソッドをオーバーライドする事で同機能異処理を実装する」としているし、
関数型OOP言語では、
「クラスを作成し、メソッドをオーバーロードする事で同機能異処理を実装する」としている

C++は手続き型だけど、テンプレートの特殊化を利用したオーバーロード式のOOPが基本
(もちろんオーバーライド式も可能)