「関数型言語」を含む日記 RSS

はてなキーワード: 関数型言語とは

2018-12-06

anond:20181206181037

昔は食わず嫌いでさっぱり触らなかったけど、仕事で触れたElixirが割と楽しくて今は関数型言語に少し興味が湧いている

2018-06-24

関数型言語、本とか読んで勉強したりコード書いてると大変楽しいんだけど

ネット上で情報検索しようとするととたんに信者たちがオブジェクト指向のディスであったりHaskell信者Scalaユーザー内戦仕掛けてたりしてノイズまみれなのどうにかならないかなあ

関数型言語機能や利点を説明する時にいちいちオブジェクト指向比較してディスらなくていいよ

Haskellではこう書くよ」の後に「Scalaではこうなって面倒だよ」とかつけなくていいよ(たいていよく調べるとScalaでも簡潔に書くための糖衣構文があったりする)

 

オブジェクト指向10年ぐらい前の記事が引っかかるとそんな感じではあるんだけど

2018-06-02

anond:20180602230227

元増田です

回答ありがとうございます

環境にもよりますけど、中学生でCは辛そうですね…

Closureというのは初めて知りました

ていうか関数型言語はまだ手出し出来てません…今取ってるN予備校Scala教えてるのでそのうちやろうかなと思ってはいるんですが、なんか取っ付きにくいっすね

anond:20180602223530

最初言語は何を選びましたか

C言語

当時はゲームを作りたかったら、まずはC言語に手を出す時代だった。

最初一年間でどんな成果物を上げましたか

何の成果もなかった。

というか、挫折した。当時は中学生だったのだ。

現在プログラミング歴何年目で、どんなプロダクトに携わっていますか?

最初挫折から数えていいなら、20年以上経っている。

プロダクトは…。具体的には内緒

汎用的な部品とかそういうタイプのものを作っている。

勉強中の言語技術はありますか?

Clojure

関数型言語を1個も使えないのが悔しくて、趣味でやっている。まだ本を1冊も終わっていないので、先は長い。

どんなプログラマを目指していますか?あるいはあなたの考える理想プログラマとはどんな人ですか?

プログラマであり続けたいが、こういうプログラマになりたいというのは無い。

GetHoge(dbConnection, key), GetFuga(dbConnection, key, key2)

という関数があったとき

dbConnection引数を渡さずにその場でDB接続する版の関数 GetHoge(key), GetFuga(key, key2)

を作りたい

DataTable GetHoge(key) {

var c = CreateDbConnection);

return GetHoge(c, key);

}

DataTable GetFuga(key, key2) {

var c = CreateDbConnection);

return GetFuga(c, key, key2);

}

これでは関数の数だけ同じものを作らねばならないので煩雑である

もっと巧く書く方法はないか

ES2015であれば、

function OpenConnectionAndRun(runFunc, ...args) {

var c = CreateDbConnection);

return runFunc(c, ...args);

}

という関数を1つ用意すればそれで済む。

関数型言語でもカリー化や部分適用を使って似た感じのコードが書けると思う。

C#ではそういった方法はないのか?

2018-04-12

関数型言語の嫌いな所

コメントが書きづらい

メンテしづらい

プリントデバッグしづらい

記号使いすぎ

構文がゴチャゴチャ

 

これ解決したら好きになってやる

2018-04-02

低級言語的なやつとオブジェクト指向言語関数型言語やれば一通りのプラグラミング言語対応できる?

具体的にはcとjavahaskellやろうと思ってる

cはもうすでに勉強してて一通りの仕様理解してるしょぼいプログラムなら書ける

2018-03-30

プログラム)一連の処理の流れをパッケージ化したい

言語に関わらず

リファクタすると細切れなメソッドになると思うんだが

メソッドAはメソッドBからしか呼ばれたくない」みたいなことってあると思うんだ

一人で開発してればそういうのは覚えてりゃ良いんだけど

複数人で開発してると、せっかくいい感じにリファクタしてA→B→C→D→Eってメソッドの流れ作ってるのに

途中だけ使われたり乱入されたり、グチャグチャにされることがある

から、A〜Eをセットにしたり、入り口と出口をコントロールしたいんだよね

 

名前をつけるとしたらModal methodsって言う感じ

今は大体Modelessすぎる

 

もちろんクラスにして〜とかオブジェクト指向的に〜とか関数型言語で〜っていう話になりそうなのは分かるんだが

もっとシンプルコントロールできて良いと思う

けどそういう思想未だ見たことがない、大体みな構造的な方法を取ってる

それじゃリファクタ意味無いし変更するのも大変じゃん?

 

あ、inputが◯◯であることを保証するとか制限するみたいなの、何かあった気が

でもどう足掻いてもめんどいんだよな

面倒臭すぎてうわー!って1メソッドに詰めることもたまにある

2018-01-26

サーバレス幻想

サーバレスってのがもうかれこれ四年は「流行ってる」ような気がするんだが

どう向き合えばいいのかわからない

そもそも自分アプリ側の人間からサーバサイドの悩みを起点にされたサーバレスの魅力を語られてもわからん

そして今でもググるサーバレス情報が大して出てこない

こういうことがやりたい、に対しての方法が見つからない

それなら旧来のやり方でいいのではないか

サーバレス情報が出てのないっていうのは、旧来の人たちですら手を出していないってことだよね?

そういう人たちに聞くと「やらなきゃなあ」みたいな億劫そうな声が聞ける

まり学習コストに見合うだけの何かは無いってことだ

だと言うのにサーバレスは持ち上げられ続けている

IT技術界隈で「流行ってる」ってのはそういう奴だ

どう向き合えばいいのやら

こういうのは言語でもよく見る

持ち上げられまくってるものが、実運用であまり使用されていない

関数型言語とかね

多分、利点があればどこかの時点から爆発的に広がるんだろう

そのラインを見極めるのが中々難しい

技術ブログなんかを見ると、新しいもの好きばかりだからまるで当てにならない

舐めるな、俺にそんな難しい技術習得できるわけないだろう!

というわけで、ずっとサーバレスがどの地点にいるか迷いながら生きている

個人的にはまだ早いと見てるが、自信はない

2018-01-14

IT業界某国スパイ巣窟

IT業界日本社会の縮図となっているんだよ - こうして僕らは腐る

http://www.byosoku100.com/entry/2018/01/13/212749

ITを学んでIT企業就職して、この国のIT企業はきっとCIAか何かによって弱体化を図られたとしか考えられないと思いました。

自分ロジック組んだり、アルゴリズムを考えたりする仕事をさせてくれている会社もありますが、会社の規模がでかくなればなるほどそういう仕事下流に任せる感が強い。まずこの構造が弱体化の出発点。

多重下請構造は、製造業日本ならではの伝統下流低賃金が根強い。背広を着た人がその伝統文化を売り捌く。文化が短納期、安請け合いを生み、短納期、安請け合いにより、品質が下がり、雇用も安く済まされ、弱いSEしかまらず、国際競争力はなくなる。この下請け構造文化を持ち込んだのは、他ならぬ製造業文化を固持してきたメーカーベンダーのように思えますメーカーベンダーCIAからなんだかのスパイ行為に加担したのでしょうか?

実はそんなメーカーベンダーにもいたのですが、ぽっと出の強いSEもいます。ところが強さが仇となり、全容を把握している神扱いで一段上に据えられます。そして多忙を極め、ロジックアルゴリズムをひねり出す知的生産力は、仕様書指示書と呼ばれるエクセル方眼紙に図形や文書を書き殴る作業力へと変貌します。

指示は全て自社フォーマット図面に書け!その図面審査承認課長に貰え!え?予算の都合、本部承認必要本部長いつ来るの?1週間後だって!?リスケだ!工数再見積もりだー…これは仕事ですか?それとも茶番ですか?こうして強いSEは弱体化します。強いSEほど自分の置かれた立場環境に順応しようとする意識が強く、仕事ができる人間になるためにはお上に楯突かず、弱体化を受け入れようと考えます

エクセルのvlookupを使うために、学生時代関数型言語を学んだわけじゃないのに…と就職して思うようになったunix文化を学んだ強いSEが、思考停止している情シスによって管理しきれないものは全てセキュリティホールみたいな会社にいたら、「あいつはセキュリティを脅かす不良社員」のレッテルを貼られ、朝から晩までvlookup,vlookup...(いやそのエクセル脆弱性情報パッチ出ているけど、いやお上のお達しを待て!的な茶番劇)せめてgrep,awk,sedくらい使わせてやれって、残業がなくなってボス最近社長の思いつきで始めた健康経営者として表彰されるかもしれんよ?思いつきだから明日あるか分からんけど…。いつまでこんな寸劇をやればいいのやら。学んだことは活かせません。茶番寸劇の中心にはやはりこの国のIT業界を弱体化させ国際競争力を低下させるスパイが潜んでいるとしかおもえません。

ここで、IT業界蔓延日本国際競争力をいちぢるしく低下させているスパイの特徴を述べておきます

・安請け合いをする無能な人

スパイ目的である国際競争力の低下にダイレクトアプローチするスパイ中のスパイです。こいつがいたら即辞めないと国や社会のためにも良くないです。

・「よく分からないものセキュリティの都合使えません」と思考停止している人

お前はそのツールコミッターでそのツール脆弱性を分かってそんな事を言っているのか?と、せめて同僚がツール有用性を知りつつ使いたいっていうならそれなりのセキュリティ的可用性を示すのが情シス仕事じゃねーのかと?まぁこ場合スパイなのでそんな調査は死んでもやりませんが…

・「ツール使用効率化ではなくズルだ!」と言い続ける人。

スパイの常套プロパガンダです。明らかにおかし言動なのでスパイの中では未熟者なのかもしれません。

・「大学で学んだことが社会では通用しない」と偉ぶる人

そのままで通用しないけど、出発点であるべき。でなければその空白を埋めるコストをどうしろと?そんな言葉マジで吐く人間は出発点にすら立たせて貰えていない場合が多い。ただ言葉を吐くスパイは、スパイが故に企業内の立場は上のほうにいるかもしれません。出発点に立っていなかろうが

法律無視する人

よく考えてみてください。遵法精神のあるスパイがいると思いますか?そもそもこのスパイ蔓延構造日本社会根深く浸透しているので、法律を取り締まる側もうまく騙されていると考える方が自然です。労基法下請法派遣法…機能しないのも当然です。

2017-04-09

経済格差による情報格差の一例かな?がんばって。

長く書きますお金の話の経験とかも、少しでも参考にしてください。

話に一個ずつ答えてく

10年前のVistaが搭載されていた頃の家電量販店で一番安かったCeleron 1コア メモリ1GB グラボなしノートからプログラミングに向いてないのかもしれない

4年前になるけど、高校生の時は1万円くらいのパソコン中古で買って、使いにくいのを我慢してて、実際損だったなと思うこともある。

お金のない環境を整えられない学生はつらいよね。明らかに札束で殴れず時間を使って損してる。

twitterできないメインで使えないのもまず、重すぎるからっていうのもありそう。

スペックが足りてなさすぎる。まずは6,7万出してスペックを整えよう。

すごい人たちについて

すごい人たちは幼少の頃からパソコンがあって、パソコンをいじるだけの時間があって、承認されてる。

しかも、コミュ症だとかなんだかんだ言いながらも、ネットではきちんと弾けてるし、人望もある。

彼らを理解するのはすっごく難しい。

経済格差が多すぎて、彼らが積んできた経験と持っている環境が違いすぎるから

プログラム自体数学を解くようですごく楽しいのだけれど、なぜ苦しい勉強をしながらプログラムをずっとやっていられるのかわからない。

環境はMac(高すぎて揃えるなんてとんでもない)じゃないから、先人たちの簡単に手順化された知恵を受けづらく、プログラム環境をととえるまでが大変だし、

ライブラリ関係エラーコード自分の力で、ライブラリを見つけに行かないとダメで、ウェブ検索しても彼らよりもずっと時間がかかる。

そこをきちんと理解したうえで、自分がどこまでやりたいのか、どうしてやりたいのか

自分プログラマに向いているのか、考えながら、勉強していったほうが良い。

私について

ちなみに私はプログラムを解くの好きだったし、ある程度は得意だった。

ADHD自閉症混じってるから、だから職人的なことをやりたかったし、テストをかけば不注意で大きな損失を出す可能性も低くなる。

からプログラマを目指しているし、プログラマとして就職するつもりなんだよね。

twitterで有名な人てやっぱりSランクとか余裕なのかな

プログラマレベル

私も無名で、プログラム力的にはpaizaのSランクは、後ちょっと足りない、運が良ければ成功するんじゃない?ってレベル

イッタランドのすごい人たちは目指すと疲れるだけなのでほどほどにね。

彼らは多分余裕綽々でS取れる。

paizaの出題は競技プログラムの一種で、競技プログラムっていうのはある程度出題の仕方が似通ってる。

複数回解いていると昔に残ったコードとか再利用できたりするから有利になるっていうのもある。

ゲームで例えるとRPG好きな奴にFPSやらせても全く活躍できないけど、FPSが得意な奴に別のFPSゲーやらせてもできたりするでしょ。

開発のジャンルの違いがあることは覚えといて。

VirtualBox上のubuntuMySQLコンパイルすると2時間20分ぐらいかかった記憶がある。

開発環境OSについて

Mac買えなくて開発環境として選ぶなら,windowsよりlinuxのほうが良い。

windowsだと環境整える前にストレスやばいし、パソコンが死んだ場合ストレスやばい

あと、古いパソコンだとUSBブートができなかったのも割とめんどくさかったし、回線がめちゃくちゃ低速だったから、ISOファイルダウンロードに半日かかってたかな。

ubuntuは良いんだけど、スペック足りてない。

VirtualBoxはすごいスペック持っている人が使うものなので、買い換えないならクリーンインストールデュアルブート推奨。

ubuntuにしとけば、ウイルス系もあんまり構う必要性がなくなるからね。

フリーソフト選択肢は狭まるけど。)

起動にVirtualBox起動に数分待って、端末以外を使おうとすると固まるみたいなことやってると辛さが溜まるから

あとデュアルブートはいいよ

あと、クレジットカード持てないのでAWS上で機械学習するのだけは遠慮したい。

クレジットカードについて

デビットカードでも行ける。

するが銀行に口座を作ってデビットカードを申しこめば、20歳以下でもなんとかなる。(年齢によっては親の同意は必要だけど)

2,3週間かかるけど、デビットカード作っておくことで色々なサービスを体験できるようになるのは選択肢を増やすにあたって重要なことだから是非。

コンビニからお金を入れられるので地方でも安心だしね。


一応著名なプログラマーTwitterフォローしてるけど、ご飯の画像を載せてたり、若者の僕には通じない寒いギャク連発してたり、ロリっぽい画像をRTしてたりと、twitterはメインの情報収集としては利用してない。

SNSについて

ネット上は怖い人もたくさんいるし、まさかりがちょくちょく飛んでくるけど、変にウケる拡散してくれて色々な人が声をかけてくれるのも確かだったりする。

ゆっくり自分の使い方を覚えていけば少しずつ楽しめると思う。

実際、SNSは情報の精度としては当てにならないし、勉強のためってSNSを使うとストレスで辛くなった。

自分好きな人だけをフォローすると精神安定するよ、あとフォロー返しはやる必要はない。やってるとTL荒れるからね。

リストとか使いこなせるなら別なんだろうけどね)

ちなみにここに飛んできた理由ツイッターかな。







何を改善したら昔よりも良くなったかってことだけつらつらと書いていく。


おすすめ度は◎○△であらわす。

ノートパソコンを新調する
おすすめ度:◎
条件:最低で6,7万円のお金必要おすすめlenovoのeシリーズ。
重いけど、コスパは良好比較的安めに上がってキーボードも打ちやすいのが良い。
いまはcorei5, メモリ8GBの使ってて、大体(重めのゲーム以外)したいことはなんとかなる。
SSDはあったら便利だけど、一番重要なのはメモリな。
開発したいなら8GBは必須。
(苦労話:
古すぎてノートなのにキーボード常時接続必要だったり、画像が多いサイトブラウザを選ぶ必要があったり、何よりもIDEが使えなくて辛かった。
windows vistaのupdateで数日固まったりゴミしかなかった。
)

光回線契約にする。
おすすめ度:◎
条件:契約できる年齢か、親の同意(年4万円くらいの出費)が必要
何をするにもまず回線速度が遅いと話にならない。
IDE落としたり、クラウドファイル上げたり、AWS使う時のアップロードとか、音声会話とか。
〇〇をしてみたいと思ったら,ダウンロード時間がかからないことは、モチベーションのためにめちゃくちゃ大切。

(苦労話:
ISOファイルダウンロードするのに半日かかるのが普通だと思ってたけど、
まともな光回線+まともなルータを利用したら、ダウンロードに1時間ちょいになってびっくりした。
特に古いルータだったりするとボルトネックになったりする。
)

ubuntuクリーンインストールする。
おすすめ度:○
条件:linuxで生きていくという覚悟
windowsよりは快適。
他のlinuxISOファイルを焼いたりするときちょっと苦労するかもしれないし、軽いの選ぶと良いかも。
実際普段使うものネットプログラムツールだけだったから、なんとかなったし、ゲーム選択肢強制的排除されるので、
少しはプログラムに触りやすくなるかもしれない。
(苦労話:
エクセルパワポ必要とか言われた時に、officeレイアウトで死んだりする。
資料はPDFな。

買い換えない場合クリーンインストールは↓
昔のパソコンでもLinuxとか入れればそれなりに動くよっていう人はいるけど、やっぱり社会的通信網と平均的なマシンスペックが上がっているせいで、ウェブ自体要求するスペックも上がってて低スペックだとつらい。
ブラウザはw3mとか使って、端末タブを開いてvimで開発してた。
なんでかって言うと普通にブラウザ使うとレスポンスが重すぎたから。
でもその使いづらさの分だけ損してるんだよね。
)

勉強会に行く、もしくはライブ中継を見る
おすすめ度:○
条件:電車代などの交通費を用意可能
できること:
他人に触発されるタイプなら、すごい人たちの興味の方向を見て学ぶ方向が増えるかもしれない。
後は交通費宿泊費の出る勉強会なんてものもあるので応募してみると良いかもしれない。
高校生なら、交通費出してくれるっていう太っ腹な勉強会もちらほらある。
一、二回は顔出し推奨。
欠点はあって、コミュ症は治らないので、友達ができるとは限らない。


パソコンを触れる時間を増やす
おすすめ度:△
条件:家庭環境による
できること:
自分向上心による。
大学生になって一人暮らしになったら、パソコンに触れる時間は多くなったとは思う。
(勉強しているとは言っていない)


デスク椅子の購入
おすすめ度:○
条件:3,4万円の出費
できること:
まず、パソコンを長時間触っていても疲れなくなる。
デスクの高さと椅子の高さはとても大切なもの。
疲れなくなるし、指が攣りそうになることもない。
机の高さはきちんと調べたほうが良い、あってることが重要
今使っているのは1万ちょいの新品デスクニッセンフリーテーブル)と3万弱の中古オフィスチェア
基本的に3000円位のデスク耐久性と高さがゴミだったりするので注意。
机は http://blog.livedoor.jp/itsoku/archives/38727329.html の66のテンプレを見ておくと良いかな。
(苦労話:
しかノートパソコンデスク椅子がなくて狭いこたつの上か100均で買ってきた台の上で、パソコンを使っていたかパソコン位置の高さが合わなくて姿勢がどうしても悪くなるせいで長時間パソコンをいじることもできなかった。

後は寝ながらパソコンをいじるみたいなみたいな堕落生活してたら、筋肉が硬直してまともに手を握れなくなって、医者にかかることになって1万円程度お金がかかったし、
2ヶ月位まともにパソコン触れなくなった。
ちょうどその時期は、筆記用具をほとんど使わない単位だけだったから良かったものの、他の単位とってたらもっと治療時間がかかったかもね。
)



jetbrainsのIDEの使用
おすすめ度:○
条件:それなりのスペックパソコン、それなり大きさのディスプレイ
できること:
設定しなくても、複数ファイルから補完が聞くし、フォルダ内の全てのファイルから検索、置換ができるのが良い。
ただし、ディスプレイが小さいと実際に開発できる範囲が小さくなるのは注意。
(苦労話:
IDEは普通に使えるなら作業効率が全く違って、設定少なくても補完も他のファイルライブラリから保管してくれるたりする。
でも、昔の環境だとeclipseフリーソフトだけど環境整えるまでが辛いし、重いしで、開くとブラウザすらまともに操作できなくのが辛い。
だからブラウザチュートリアルとか見ててもパソコンに待たされてストレスだった。
まともに使うには設定がめちゃくちゃ必要なのは実際疲れた。

(ac.jpメールアドレス必要だけど)学生無料なIDEでjetbrains製品があるけど、設定しなきゃダメなvimとかと違ってマウス操作できるのがすごい良い。
端末ではコピペ簡単にできなくて、数は少ないけどよくあるミスが、間違えてcommandモードで貼り付けてやり直したり、vimのline numberの設定をいじらずにvimからコピペができる。
コレだけでイライラ具合が全然変わる。
)

図書館からコーディングの本を借りてきて読む(できれば、実践すること)
おすすめ度:◎
条件:図書館や図書室で本を注文できるか、本があるか
できること:
プログラム能力が向上する。
おすすめされている本を探すと良い。
プログラム学者なら、ネットだけで勉強するよりは効率がある。
とりあえず、やりたいことなくて、プログラム力をただ上げておきたい場合は、
競技プログラムやりたいとしても下の順番で進めると良いかもしれない。
あと、プログラムには自分が到達しているところまでで言うと、次の順で壁があって能力が足りないと行き詰まることがある。
>> 関数化 → クラス化 (→ ポインター) → 再帰 → 関数型言語 <<
数年かけて勉強して次の段階に勧めないならプログラマは諦めたほうが良いかもしれない。
(能力が足りないのは上司自分もつらくなるよ)


パソコンディスプレイを買うこと
おすすめ度:○
条件:1万円弱のお金
できること:
ノートパソコンなら2個の画面を使えると作業効率が違う。
特に手打ち系のコーディング練習とかがめちゃくちゃ捗るようになる。
(苦労話:
IDE系列は画面を割と占拠するので、ノートパソコンの狭い画面だと辛い。
でも大きすぎる画面だと持ち運べなくなるのでダメ画素数が上がればその分だけ小さく表現ができるので、画面サイズが同じでも画素数が違うとかなり大きさが違って見えたりする。
)

大学に入って時間を稼ぐ
おすすめ度:○
条件:学力があること努力すること、覚悟
できること:
奨学金を利用して環境を整えたり、時間が増えるから更に勉強できる。
プログラム関係もそれ以外も就職先が増える。
また、これから転職したくなった時に逃げ道が増える。
欠点国立は安いけど、入学にそれ相応の努力必要私立行けるなら、苦労してないと思う。
あと免除制度っていうのがあるから、そういうのも利用しつつ費用を安く上げよう

デビットカードを持つこと
おすすめ度:○
条件:年齢(か、親の同意)
できること:
ちょっとした電子払いができるようになる。
多重債務は起こらない。
欠点としては、定期払いはできないので携帯の契約とかはできないことに注意。




終わりに

スペックパソコンしか無いのは、多分家庭環境のせいでもあって、

君がアルバイトもできるかどうかわからないし、アルバイトしてもそのお金が君のもとに入ってくるかはわからない。

お金無限にあるわけじゃないし、時には経済格差を感じて辛くなることもあるだろう。

少ないお金の中でうまくやりくりして、それでも自分の力にしていってほしい。

お金が潤沢にあるなら親を説き伏せることをがんばって)

応援してるよ。

http://anond.hatelabo.jp/20170407112743

2016-12-05

本当に自分技術が好きなのかわからなくなった

高校時代からプログラミングに興味を持ち、ショボいCGIなんかを書いていた。

んで、大学時代バイト学業に勤しんでいた(情報科には行かなかった)。

就活自己分析してやっぱり自分ITだね!とか思ってSIerになった。

あれから10年、何もしていなかった。

Ajax関数型言語クラウドモバイル統計機械学習色んなトレンドが来たが、自分で何かをやろうとしたことはほぼなかった。

やろうとしたが、マシンスペックがしょぼいと言って何もしなかったり、失敗したり、身につかなかった。

致命的だったのは何かを作ろうという意欲が自分には全くなかった。あんツールがあったら便利だなとか、こんなサービスがあったら楽しそうだとかという気持ちがまったくなかった。

人見知りの性格と、何も作れていない自分が惨めでSNSにも勉強会にも参加できなかった。

この10年、仕事でやっていたプログラミング技術は少しは向上したけど、ただそれだけだった。

プログラマ定年説まで半年向上心も枯れて、人見知りは治らないし、仕事はできない。おまけに鬱持ち。

QiitaGitHubには毎日のように大量のポストが送られる。自分もそのうちの一人になりたかったなぁ。

2016-05-28

http://anond.hatelabo.jp/20160523005052

FRP関数型言語も、誰も合意があるなんて言ってない。岡部氏の藁人形論法

藁人形に加えて「合意がないから僕の独自理論は正しい!」という詭弁

2016-05-24

http://anond.hatelabo.jp/20160524133941

このように何か処理を実行した際に、入力として受けつけたデータ以外の物が変化することを"副作用がある"と表現するようです。

関数型言語はこの副作用のないプログラムを目指します。

引数データを受け取り、それ以外の情報を使わず戻り値を返す」関数を作ることを考えましょう

外部に依存しないよう関数の入出力を定める

この辺でさ、岡部氏のFRPは、時間軸を持つストリームとしての値っていうのを、特別扱いして外部に持ってるわけじゃん?

反対してる人は、状態を外部(関数引数でも戻り値でも無い所)に持つの関数型的でない、って言ってたわけじゃん?

岡部氏は時間グローバルなのが当たり前、引数戻り値で表す必要はない(全てを引数戻り値表現する「状態渡し」ではアプリは作れない)って立場じゃん?

上で引用してるのは「状態渡し」推奨の立場じゃないの?

なんで状態渡し否定派の岡部氏の路線になるの?

2016-05-23

http://anond.hatelabo.jp/20160520093920

仮にCが純粋関数型言語で、岡部FRPのx.t=x.t+1;も関数型なんだったら、C言語のx=x+1;も関数型だよね。

岡部氏の本でさんざん「x=x+1;は論理破綻」って批判してたのは何だったんだろう。

というか普通のCやJavaScript関数型なんだったら、岡部関数型の存在意義は……

http://anond.hatelabo.jp/20160520093920

岡部氏は当該部分を引用していませんが、元記事をちゃんと読むと

Cの「プリプロセッサが」Cプログラムを生成する純粋関数型言語

という話ですね。

2016-05-22

http://anond.hatelabo.jp/20160520083417

「滅多なことが言えなくなった」としたら、nonstarter氏のブログのように

岡部氏に反する意見を言うと激しく荒らされるからですね。

迷惑がかかるといけないのでリンクしませんが、

住井氏は関数型言語に関する世界最高峰の国際会議委員長ですね。

エリオット氏のブログは、岡部氏が引用していない部分を読むと、

C言語の「プリプロセッサが」Cプログラムを「生成する」ので、

HaskellのIOモナドがIOアクションを生成するのと同様に

純粋関数型言語とみなせる、という主旨のことが書かれていますね。

岡部氏は「プリプロセッサ」という部分を引用していないようですが。

2016-05-20

http://anond.hatelabo.jp/20160520143856

再束縛OKの関数型言語はあるよ

> (let [t 1, t (+ t 1)] t)
2

http://www.tryclj.com/

Elixirもそうみたい

t = {x: 1, y: 2}

のあとで

t.x = 10

t.y = 15

とか直接書き換えられたら問題かな

2016-05-19

http://anond.hatelabo.jp/20160518171946

何度も指摘されているが「岡部氏のFRP」は同じメンバ変数tに何度も値を上書きしてるだけの

FRP以前に関数型でもない普通命令プログラムいくら論文曲解したり哲学とか言い訳しても

客観的には単なるメンバ変数への破壊的代入。オブジェクトconstをつけたところで

メンバ変数constにはならない。

 

じゃあOCaml純粋関数型や(本当の)FRPで複雑なGUIアプリが書けるかと言うと、

理論的には不可能ではないかもしれんが、もともと非純粋なので

誰もそういうライブラリを整備してないから、ライブラリから作るのは

まあ面倒だろうし、わざわざ非純粋関数型言語純粋関数型のGUIを作る動機

現時点ではまずないだろう。これもすでに指摘されているとおり。

 

もっとも「岡部氏」は「お絵かきアプリ」も「FRP実装が必ず必要となります。」と自分ブログで断言し、

その反例としてOCamlやらHaskellやらのコード直ちに書かれた以上、また話を逸らすのも大概ではある。

2016-05-16

http://anond.hatelabo.jp/20160302090242

ああ。住井@東北大かな?

&gt;(分析哲学ではなく関数型言語意味で)参照不透明なので、関数型プログラミングメリット享受できない、命令型の破壊的代入と等価ですね。

君の役にもたたない机上の空論は皆そろそろ聞き飽きていると思うので、適当なハッタリではなく、timeengine(FRP)がいったいどのような局面で、参照不透明名実ともになり「破壊的代入」のデメリット顕在化し、関数型プログラミングメリット享受できなくなるのか、具体的に示せよ?100%無理だろうけどね。机上の空論じゃないなら、やれるもんならやってみな?w

http://anond.hatelabo.jp/20160516112619

ああ。住井@東北大かな?

&gt;(分析哲学ではなく関数型言語意味で)参照不透明なので、関数型プログラミングメリット享受できない、命令型の破壊的代入と等価ですね。

君の役にもたたない机上の空論は皆そろそろ聞き飽きていると思うので、適当なハッタリではなく、timeengine(FRP)がいったいどのような局面で、参照不透明名実ともになり「破壊的代入」のデメリット顕在化し、関数型プログラミングメリット享受できなくなるのか、具体的に示せよ?100%無理だろうけどね。机上の空論じゃないなら、やれるもんならやってみな?w

ログイン ユーザー登録
ようこそ ゲスト さん