• ベストアンサー

プログラミングと人間の思考に関する本

普段思考するときにプログラミングの関数型を使用するような感じで思考するための枠組みを学びたいなぁと思っています。あるオブジェクト(概念の固まり)に関数を適用して望む結果を受け取る…、あるいはちょっと言語学寄りで動詞にオペレータを追加することで熟語動詞をつくってそれが拡張関数になってるとか…言語空間をブラウズする上での効率的な方法が知りたいです。そのような内容の本があれば教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

 句読点がほとんどないのでよくわかりませんが、こんな感じでしょうか? オブジェクト=普段思考するときにプログラミングの関数型を使用するような感じで思考するための枠組みを学びたい。  手段1=あるオブジェクト(概念の固まり)に関数を適用して望む結果を受け取る  手段2=ちょっと言語学寄りで動詞にオペレータを追加することで熟語動詞をつくってそれが拡張関数になってる  オブジェクト補助=言語空間をブラウズする上での効率的な方法が知りたい。  最近よく見かける、投入口にデータを放り込むと、枠にはまった答えがガチャポンと下から出てくるような感じを受けます。(フレームワークは、フレームワークと言う方程式があるわけではない)不可能というより矛盾している。  プログラミングに関数型を使うとか、言語空間を…効率的方法。という考えは、あいまいであい路に入り込みやすく、なおかつすぐに入り組んでくる非効率な思索を、関数と言うパッケージに押し込んでしまい、思考の持つ広がりや、つながることによる拡張性を妨げる。これは動詞にオペレータをくっつけても同じ。とくにこの場合言語の抽象度[一般意味論]の違い[一般意味論、コーチング関連、UML]が、妨げになる。  プログラミング言語と違い、普段使われている言葉はばらばらな抽象レベルにあり、両者を結合するのは不可能。そのうえ上下関係の観念を含みやすい日本語ではさらに困難。  それと、思考過程のパターンをリスト化したアーカイブが必要。つまり哲学関連書籍のほとんどを読む。  ただ、人間の思考を真似できるというので、デジタルがコンピュータで使われているというのもあるので、必ずしも中身が分からなくても、外部への反応をリスト化しても可能でしょう。ただ、例外だらけになりそうだが。  以下参照 http://www.amazon.co.jp/パターン、Wiki、XP-~時を超えた創造の原則-WEB-PRESS-plusシリーズ/dp/4774138975/ref=sr_1_1?ie=UTF8&s=books&qid=1290450718&sr=1-1  

noname#121989
質問者

お礼

ありがとうございます。 参考になりました。

その他の回答 (4)

  • f2s3f2
  • ベストアンサー率20% (73/350)
回答No.5

プログラミング手法とかそういうのが学びたいわけではなく、一般的に通用するそういう考え方ってことですかね? もしそうなら、ロジカルシンキングで検索してみてください。

noname#217196
noname#217196
回答No.3

「コンセプト検索」、「オントロジー」、「セマンティックWeb」をキーワードに研究論文や研究サイトをインターネット検索してみることをおすすめします。 なお以下余談ながら。ワインバーグの問題解決の心理学系統の本は、利用者の誤認や苛立ちを回避するにはプログラミング等の工学技術より人間心理への想像力を向上させると有効な場合を取り上げていて (つまりは質問内容への解答にはあたらない本なんですが、質問タイトルからすぐ思い浮かぶ本でもあります)面白い読み物です。ただし執筆当時のソフト開発ってかなりひどかったんだとわかるだけかもしれません。 永年の改良を経た道具や案内板に関する利用者便宜性について書いた佐貫亦男(さぬきまたお)やペトロフスキーの著作、あるいは野中郁次郎の『創造的模倣経営』(画期的発明製品への不満を後発企業が解消し成功した事例の紹介)の方がより普遍的な問題実例、問題解決実例を紹介していると思います。

noname#121989
質問者

お礼

ありがとうございます。 参考にしていろいろ調べてみます。

回答No.2

すみません、いまいち質問のイメージがつかめませんので言い方がキツクなる箇所が出るかも知れませんが御容赦の程。 まず、御所望に叶う様な書籍は無いと思います。 >普段思考するときにプログラミングの関数型を使用するような感じで思考するための枠組みを学びたいなぁと思っています。 ここだけ見れば理解可能です。 物事のロジックを立て、一つ一つの要因毎に頭を整理するだけです。 その際に、頭の中にスタック領域が必要になって来ますので記憶の印象付けが大切です。 >あるオブジェクト(概念の固まり)に関数を適用して望む結果を受け取る…、 これは全くイメージがわきません。 オブジェクトとは、データや関数など、一つの目的の為にカプセル化されたものです。 つまり、思考の元になる情報と、思考の方向性です。 もっとシンプルに言えば、部品レベルでの方法論と言えるでしょう。 何か論文を書くときとかでも、この様な部品レベルの方法論を沢山持っていれば全体が効率的に書けるとか、そう言うイメージだと思うんですけど、オブジェクトに関数を適用して・・・とか言われると全く見当が付かなくなってしまいます。 >あるいはちょっと言語学寄りで動詞にオペレータを追加することで熟語動詞をつくってそれが拡張関数になってるとか… これもちょっとイメージが湧きません。 動詞にオペレータを追加って、演算子のオーバーロードみたいなイメージ? 良く分かりませんが、いずれにせよエイリアス的な話なんでしょうね。 でも、それが拡張関数って・・・ちんぷんかんぷんです。 そもそも拡張関数って何を指してるんですか? 多分、ほんとに、多分ですけど、一つの方法論の塊を自分なりにエイリアスしてそれを他の方法論と掛け合わせたいとかってイメージなのかなと思いますが、そんなのは自分の中でルール付けすれば済む話だとも思います。 >言語空間をブラウズする この表現もちんぷんかんぷんです。 この言葉からイメージされるのは、非常に左脳的だと言う事です。 しかし、プログラミングの様な論理的な思考は右脳的で有るべきです。 基本は、論理学かなと思います。 しかし、論理学など覚えなくても、プログラミングを多数こなせば、自然にその様な思考方法は身に付くと思いますよ。 なので敢えて書籍を薦めるとすれば、論理学入門かプログラムロジック関連の書籍かなと思います。

noname#121989
質問者

お礼

ありがとうございます。 参考になりました。

  • gtx456gtx
  • ベストアンサー率18% (194/1035)
回答No.1

具体的な著書を読んだ訳ではないのですが・・・他の方の引用などからですがが参考になればと思います。 wiki http://ja.wikipedia.org/wiki/%E3%82%B8%E3%82%A7%E3%83%A9%E3%83%AB%E3%83%89%E3%83%BB%E3%83%AF%E3%82%A4%E3%83%B3%E3%83%90%E3%83%BC%E3%82%B0 『ライト、ついてますか—問題発見の人間学 』はどうでしょうか?

noname#121989
質問者

お礼

ありがとうございます。 参考にします。