「関数型プログラミング」を含む日記 RSS

はてなキーワード: 関数型プログラミングとは

2020-03-26

anond:20200326064725

Basic

学生の頃「当研究室ではデバイス制御するのにN88Basicでやってる」と言われ習得。その後VBVB.netに移行

PHP

なんちゃって投稿システム自作するとき習得。いまでも年1回投稿システムは使っているが、セキュリティ的に大丈夫なのか?あのとき情報部署担当者PHPの新しいバージョンSQLサーバーインストールしてって頼んだら、わけのわからない理由で拒まれ、それがトラウマになってそっち系趣味は止めた。

R

職業統計解析とかやるときあるので・・今までは商用ソフトでやってきたが、最近つくづく嫌になる。Win用だし・・

マクロの類

数式処理ソフトマクロ(一応関数型プログラミング言語と称しててHaskell類似?)やテキストエディタマクロ可視化アプリマクロ(Rstudioのggplot2みたいな奴)やVBAなど・・を場当たり的に駆使して生き延びてきた。

言語習得

言語と言ってもヒッポクラブみたいな話にあらずプログラミング言語。いまのところモノにしたのはbasicPHPだけ。PHPは数年間触ってないので忘れたかも。「Learn git in a month of lunches」みたくお昼休みに本を見ながらキーボードを叩くとかそういう昼休みを習慣化したい。機械学習とか数値演算とかも取り組みたいのでJuliaか?Juliaは適当日本語教科書が未公刊なので、きっかけがないんだよな。どっかから出ているJulia本は、わかりにくいらしい。

あとは、Rか?

ライブラリがたくさんあるので、Rだろうな・・・ちょっとシンタックスに癖があるけど・・Rは言語というよりスクリプトというかマクロ・・・だよ・・な。

pythonとか

jsとか・・いろいろ・・・言い出したら霧ヶ峰高原関数型プログラミング教養として習得するということでHaskell学習してみたい。

2019-10-14

関数型プログラミング

いろいろなチュートリアルを見てるんだけど、言語のもの解説100%使われていて、問題解決についてほとんど書かれていないのが普及を阻害する原因だと思う

2019-08-22

anond:20190822094152

関数型プログラミング支援がない、昔のJavaとかPHPとかCで関数型やろうとしてネスト深くするやつとか、それを見て「関数型は糞だな」って思うやつとか、まあ、あるあるやね

2019-03-02

オブジェクト指向.vs.関数型プログラミング

みたいな論争をしたがる人がいるけどPGの98%はどちらも理解できないから、めちゃくちゃ無駄だよな。

2019-02-28

Staticおじさんは正しい

関数型プログラミングなんてstaticおじさんじゃん

2018-10-21

普通プログラマ関数型プログラミング絶対理解できない

実を言うと、普通プログラマオブジェクト指向以前のプログラミング理解できないんだけど、あれらはまだ手続き的な要素を内在してるから、そっちだけを受け取ることはできる。

それまで手続き的な要素+宣言的な要素だったプログラミングが、関数型プログラミングへと移行する時に手続き的な要素を切り捨てたのね。より純粋手法進化するために。

から、それまで手続き部分だけを受け取って喜んでた普通プログラマは急にわからなくなりヒステリーを起こした。

だけど、プログラミング上級者はオブジェクト指向以前にも宣言的な部分しか見てないか普通プログラマが何を騒いでるのかわからない。

普通プログラマって、部品化の凄いやつが関数型プログラミングになるとか勘違いしがちだけど(staticおじさんもその変奏)、全く質の違うもの

部品化って、重複コードをひすたらサブルーチンに括り出すようなもの副作用がある。

日本SIer(日立NEC富士通とか)って教養がない極東田舎者から副作用理解できない。すぐに「部品化」を持ち上げる。怖いんだろう。自分理解できないプログラミングが。モナドですら大多数は理解できないんだものあん教科書的なものですら。

とにかくアジアってIT後進国なのね。トップ日本ですらこうなのだから。"NTT"データHaskellレガシーシステム脈絡なく解析してホルホルしてるレベルもの

まず日本に生まれた時点で、関数型プログラミング理解するには圧倒的に不利。こんなこと言うと、「普通プログラマにもわかやす説明できるのが一流ダー」みたいな恥ずかしい駄々っ子が沸いてくるけど、プログラミングって歴史上一度も大衆相手にしてないので。

昔は研究機関IBMで、今はMSGAFA

OSS恩恵で、普通プログラマコンパイラ無料で使えるようにになっただけで泣いて喜ぶべき。

そしてあれは、将来のスポンサーコミッタ入り口としてやってるの。1000人に1人、将来コミュニティに貢献する人材いるかもしれないと信じて。

シリコンバレー住人にもOSSコミッタにもなれない普通プログラマはまあ、おこぼれで"文化的"コスプレしてQiitaでもやればいいんだと思うよ。

anond:20181021093430

2018-08-15

https://anond.hatelabo.jp/20180815005242

古いスター見られないから新しくスクリプト書いた。listStarURLs(ユーザ名, ページ数)で与えられたユーザブクマを与えられたページ数まで見て自分starを押したブコメリストアップする。

https://pastebin.com/4TLHvyQB

これで出てきたスター一覧を上のスクリプトと組み合わせれば与えられたユーザ自分がつけたスターをお手軽に全削除できる。

Qiitaかなんかで「JSではforは使わず関数型プログラミングが素晴らしいのだ!(ドヤァ」という記事に「いやいや逐次awaitしたいときそれじゃ困るんだよ(キリッ」みたいなブコメがついてて大変生暖かい気持ちになったことを思い出したのでfoldしてみたけどあのときブコメしていた関数()フロントエンド()プログラマー(笑)の皆さんは別に見てはないだろうなw

2018-08-10

anond:20180810151521

関数型プログラミング使ってないでしょ?

バリバリに使ってるが

実務でプログラム仕様検討なりレビューなりするときに、お前みたいなこと言いだすやつがいるとしたら邪魔しか無いが、関数型プログラミングで何作ってる人なんだ?

2017-09-11

まずは自分がプログラマーになってみよう!

山本五十六名言「やってみせ」

やってみせ、言って聞かせて、させてみせ、ほめてやらねば、人は動かじ。

話し合い、耳を傾け、承認し、任せてやらねば、人は育たず。

やっている、姿を感謝で見守って、信頼せねば、人は実らず。

まずは、あなた自身プログラマーになって、見本を見せることが第1歩です。

プログラマーに向いている性格

その後受託系の会社就職できたのだけど、人間関係がうまくいかなかったようで数ヶ月で辞めた。

鬱病気味になったみたい...。

どうやら、プログラミングという仕事の特徴について、あなた理解していないようですね?

 

プログラミングの特徴は、「コンピューター相手なので、嘘やハッタリが一切通用しない」ということです。

人間相手なら、適当に指示を出したり、いい加減な対応でも何とかなるけど、コンピューター相手だと1mmも融通が利きません。

 

従って、プログラマーに向いている性格は、

  1. 嘘をつかない
  2. 几帳面
  3. パズルを解くのが好き

という3点が必要です。

 

警察職務質問されて有名になった江添亮さんのブログ等を読んで、この方のようにネチネチと論理をこねくり回すのが好きなら、プログラマーに向いています

(例)本の虫: 麻布十番職務質問を受けた話 https://cpplover.blogspot.jp/2017/08/blog-post.html

関数型プログラミング

プログラムというのは、小さな部品を組み合わせて、大きなシステムが作られています

さな部品パズルピースに相当して、大きなシステムパズルの完成品です。

まり、大きな問題を小さな問題に分解して、1つずつ順番に問題をつぶして行く姿勢必要です。

 

プログラミングパラダイム(考え方)には、

  1. 命令
    1. 手続き型(Java等)
  2. 宣言
    1. 問合せ型(SQL等)
    2. 関数型(Haskell等)
    3. 論理型(Prolog等)

があります

 

命令型のプログラミング言語しか使えない人がプログラマーになると、テスト地獄に陥って、結果的鬱病発症やすくなるだろうと危惧しています

上述のように、パズルピースを組み合わせてプログラムを作るには、「関数型」の作法を身に付けておくと良いでしょう。

Haskell

関数型プログラミング習得するために、今なら「Haskell」または「OCaml」というプログラミング言語お勧めします。

HaskellOCamlは、良い参考書がたくさんあるので、本屋に行って実物を確かめてください。

 

Haskellを学んでみて、パズルピースを組み合わせる感覚理解できたら、あなたテスト地獄に苦しめられないプログラマーになれるでしょう。

もしも、Haskell理解できないようだったら、残念ですがプログラマーには向いていないかもしれません。

例外的に、あなたマゾで、テスト地獄残業徹夜楽しいと思える性格なら、Haskell理解できなくても大丈夫かもしれません。)

 

Haskellの教材(英語)を紹介するので、参考までに読んでみてください。

http://learnyouahaskell.com/chapters

(このサイトの内容は、日本語書籍「すごいHaskellのしく学ぼう!」として出版されています。)

 

Haskellは、順番に学べば必ず理解できるようになっています

もしも、Haskell習得できなければ、大きな問題を小さな問題に分解して解決していく作業には不向きな性格かもしれないので、他の仕事検討してはいかがでしょうか?

人生は一度きり。時間無駄にならないようにお気を付けください。)

 

あなたと友人が、無事Haskell習得して、テスト地獄を乗り超えるスーパーハッカーになり、日本IT産業を牽引されることに期待いたします。

 

(追記)

まずは、自分が作りたいアプリサービスを作ってみよう。

自分が作りたいプログラムすら作れない人が、他人希望するプログラムを作るなんてできっこいからねw

プログラマーが楽で簡単仕事だと思ったら大間違いですよ?)

 

(追記 その2)

関数型プログラミングマスターしておけば、OOPでも役に立つよ。(現実には、関数型もOOP必要に応じて投入するし)

iOS→「プロトコル指向プログラミング」「RxSwift」、Android→「RxJava」辺りのキーワードでググってみて。

別に皮肉とか宗教戦争で煽ってるわけじゃなくて、自分も苦労して辿りついた口だから、今から始める人には遠回りして、余計な苦労を味わって欲しくない。

 

(追記 その3)

他の人が書いてたけど、1人でプログラミングするんじゃなくて、2人(ペアプログラミング)や3人以上(モブプログラミングから始めたら良いかも。

Googleの「プロジェクトアリストテレス」で、仕事生産性改善するには「心理的安全性」が重要と分かり、プログラミング仕事もやり方が変わって来ています

ソニックガーデン倉貫さんの働き方が参考になると思います

https://kuranuki.sonicgarden.jp/2017/01/psychological-safety.html

 

(追記 その4)

記事が消えていたのでバックアップしておきます。(この投稿だけ読むと意味が分からなくなるため)

https://anond.hatelabo.jp/20170910205249

2017-09-10

■知り合いをプログラマにさせたいんだけど知恵を貸してくれ

プログラマって育休からの復帰しやすいだろうし、アルバイトよりは待遇いいし、勤怠ゆるいし、労力の割に楽ちんだと思うんだよね。

接客バイトで消耗するくらいなら、プログラマになればいいと思っているのだが、その知り合いは自身のことをプログラミングを不向きと評価しているらしい。私は、プログラミングに限らず物事時間をかければ習熟していくものだと思っているので、不向きではないと思うんだ。不向きというのは物理的に制限のある時だと思う。

その知り合いについて。

Vimはぎこちないけど使える。日常的にmacOSを使っていてターミナル操作はできている。cd, ls あたりは理解している。

趣味を含めてアプリケーションを完成させた経験はないが、ifやfor文などの基本構文は理解している。数年前にプログラミングスクールのようなところに半年間通っていた。その後受託系の会社就職できたのだけど、人間関係がうまくいかなかったようで数ヶ月で辞めた。鬱病気味になったみたい...。

何か成功体験があれば自然とのめり込んでと思うんだけどなかなかスイッチが入っていないみたい。

こちら側からは、プログラマーになれば?と直接は伝えてはなくて、素人でもプログラミングできましたみたいなネット記事シェアーしているくらい。(心理的リアクタンス避け)

知恵を貸して欲しい。

2016-05-25

http://anond.hatelabo.jp/20160521163144

ReactはJavaScript界隈の関数型プログラミング化の潮流で登場。

最近炎上している別の方面で、特にFRPと組み合わせると圧倒的なパワーを発揮すると一部では実例とともに指摘されている。

http://kenokabe-techwriting.blogspot.jp/2016/05/frptimeenginereactjsocaml.html

Reactは、関数型あるいは宣言型に書けるように用意されている。DOMは、「仮想DOM」として、JSJSX)上の「値」として統合されていて、それは自由に変形し、組み合わされ、リアクティブJSX上の仮想DOMからDOMリアルタイムマッピングされ描写される。

JQueryも、実DOM関数型で操作できるような拡張ではあるが、Reactのように宣言的に書くことは不可能

coffee scriptは、ES6登場までの過渡期の橋渡しみたいなもので、登場したのも消えたのも合理性がある。

React.jsは、関数型の潮流で登場したものでこれも合理性があり、この延長線上でさらに洗練された代替物が登場する可能性はあれど、このパラダイムが消えることはない。

2016-05-24

http://anond.hatelabo.jp/20160524120445

現実岡部氏を高く評価している特定の人たちも知っていますが、住井某その他の強弁に騙されるような馬鹿プログラマーばかりではないということです。

関数型プログラミングはまず考え方から理解しよう

http://qiita.com/stkdev/items/5c021d4e5d54d56b927c

とか、まさに岡部氏の路線のものじゃないですか。

Qiitaにこのような記事が登場するまで長い時間がかかりました。

なんとかFAQが参考になる、なんてもう誰も思ってないのでは?

2016-05-23

http://anond.hatelabo.jp/20160520110314

関数型プログラミング特権として考えていない前時代プログラマー

okabbe氏にGUIアプリ書けるのか?と詰め寄られてもなんともできない

もっとも裏では2ちゃんねるQiitaの裏アカウントで暗躍してるみたいだけど

2016-05-21

http://anond.hatelabo.jp/20160521163144

まずReactの特徴は、「状態データから変換してビューを生成する」スタイル統一されることにある。

これはjQueryをはじめとするDOM操作モデルでの、「初期状態ビューの作成」と「(イベントに伴う)状態変化からの部分ビュー変更」で構成するスタイルから脱却され、たとえば部分処理の積み重ねから想定外状態が生まれることを防ぐ。

SPAは、クライアントが自立した1プログラムとして状態管理する。サーバUIと同様の非同期なイベント発生源/イベント発行先の一つとして扱う。またReactとReduxの組は、データベースサーバサーバサイドページ生成のスタイルを、サーバブラウザでやるようにシフトさせたものともみなせるだろう。

そしてReact自体には、JSX構文もbabelもいらない。JSXタグを書くよりむしろReact.DOM.div({...},...)等で書いたほうがプログラミングでは扱いやすい。JSXサーバサイドページ生成のテンプレート言語利用文化に寄せた表現に過ぎないといえる。そして今ではbabelで変換する対象もES6 modulesのexport/importだけだ。これも分割ファイル対応のためにwebpackあたりを使うなら、ついでにbabelでES6 modulesも、といった程度のこと。

すでに一般に忘れられつつあるprototype, Dojo, Mooと同格であるjQueryのほうが五年後も活発にメンテされるのかどうか怪しいだろう。もちろん、レガシーものとしては残り続けるだろうが。

Reactのモデル関数型プログラミングモデルのものであって、そういう観点ではすでに何年も続いたものであり、React自体は消えたとしてもその手法は長く続くことになる。

2016-05-20

http://anond.hatelabo.jp/20160519175956

観測できる事実として、岡部さんと住井さん、nonstarteさんの振る舞いが目立ってきた頃から

国内ネットでは、地雷、滅多なことを言わないほうがいいという風潮がありました。

しかも、「純粋関数型」が何か?というさえ、海外では関数型プログラミング界隈の著名人

たとえば岡部さんが引き合いに出す論文エリオットはじめ、合意が取れていません。

http://conal.net/blog/posts/the-c-language-is-purely-functiona

「nonstarter氏や住井教授のようなエントリの内容は、日本国内でのみ少数の合意が得られてるに過ぎず、海外では主流ではない。」

よって、これは岡部さんのほうが公平な現実について発言しており、が正しいと判断します。

住井さんをはじめ、岡部さんが批判する相手は、議論となっている関数型プログラミング定義などが、まるで世界的に合意がされており岡部さんのみが異端だという主張ばかりしており、あまり信用できません。

http://anond.hatelabo.jp/20160520061937

>>(関数プログラミングで書けるということの恩恵はもちろんあるとしても)。

>これもどういう意味なのか全く意味がわかりません。

いわゆる参照透明性が成り立つ(副作用がない)から式やプログラムの変形が容易とか、

関数型プログラミング基本的メリットですが、理解できないのは相手が間違っている

自分が正しい)と決めつける理由は何なのでしょうか……

2016-05-16

http://anond.hatelabo.jp/20160516174234

FRPって関数型プログラミング+リアクティブプログラミングでしょ?

そんで、リアクティブプログラミングって、

__drawFrom.t = {
        x: e.clientX,
        y: e.clientY
      };

みたいなグローバル変数を書き換えるコード自分で書くんじゃなくて、

この変数とこの入力欄/入力ボタンは結びついてます、って書くだけで、フレームワーク利用者に見えないところで、自動的更新してくれる仕組みだよね?

既存FRPライブラリってそうじゃない?

自分イベント拾ってグローバル変数書き換えてたらFRPじゃないよね?

違う?

http://anond.hatelabo.jp/20160516161429

正確には、

関数型って時間パラメータで与えて結果を得るんじゃないの」とか意味不明なこといってる馬鹿がいて、

hoge.t あるいは、date.now やらで指定してたインデックスというのは、関数型プログラミング文脈からインデックスが得られるんだとさ。

初期値0からはじまる時無限再帰カウントから、どうやって時刻を得るパラメータが得られるのか、頭のおかしい奴の考えるコード想像不能。

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