【概念】述語

  • 2012.07.16 Monday
  • 03:03

リスト内包表記の条件の事を述語というらしいです。前、Linq関連の投稿で「主語」がどうのこうのとコメントをいただいた事があります。これも述語を意識してのコメントだと勝手に思ってるのですが、まえまえから疑問なのが・・・この「述語」という言葉の出所は何かという事です。「これ述語です。」って言われれば、「あーそうですね。」って言うと思うんですが、「これ述語ですよね?」って聞かれると「わかりません。」ってなるくらい私の中ではモヤモヤしています。

そうそうMSDNにも、しれーっと「述語」という単語が出てきます。


実行時まで、where 句でソース要素に適用する必要のある述語の数がわからない場合があります。複数の述語フィルターを動的に指定する 1 つの方法は、次の例に示すように Contains メソッドを使用することです。この例は、2 つの方法で構築されています。まず、プログラム内で指定された値にフィルターをかけてプロジェクトを実行します。次に、実行時に指定された入力を使用してもう一度プロジェクトを実行します。
http://msdn.microsoft.com/ja-jp/library/bb513731.aspx


小学校とか中学校の国語で登場する「述語」でも何となく雰囲気で感じ取れる・・・勝手に察する・・・勝手に納得するという事はできるんですが、なんか違う気がするんですよね。分からない事を調べるのはググったりWikiを見回すぐらいしか手段を持ち合わせていないのが最近かなしいんですが、Wikiをみると


述語
http://ja.wikipedia.org/wiki/%E8%BF%B0%E8%AA%9E


言語学の述語が記述されていますが、ようはこれは国語の述語。なんか違う気がするんですね。

で、こっちの事かなって思うのが「一階述語論理」ってやつ


一階述語論理
http://ja.wikipedia.org/wiki/%E4%B8%80%E9%9A%8E%E8%BF%B0%E8%AA%9E%E8%AB%96%E7%90%86


残念ながら私には基礎知識が足りなさすぎて理解不能なのですが、勝手な妄想でこれに関連してプログラミングで「述語」なんて言葉が出てきたのかな?

って勝手に推測してます。いや妄想。



------------
(追記)
もっと楽しむ! プログラミング言語 「豆」談義
http://gihyo.jp/dev/serial/01/enjoy-pg/0002

興味深い記事を見つけました。

【概念】内包

  • 2012.07.15 Sunday
  • 13:49

「リスト内包表記」という言葉を過去に何度か見たり聞いたりしたことがあります。はじめて目にしたのは、大学の数学(線形代数だったかな?)の講義だったと思います。「リスト」という言葉はついていなかった気もしますが、内包表記という言葉は出ていたと思います。元がどうのこうのとか∈とか∋とかよく分からん記号がでてきるアレです(余談:大学の数学は、記号の量がいきなり増えてついて行けなくなりました・・・そして、勉強する気がなくなってしまいました・・・いま思えば勉強しておけば良かったって思います)その後、「リスト内包表記」をRubyやPythonを触ってる人たちから聞いたことがあります。で、関数型プログラミグですね。C#では「リスト内包表記」というのは登場しないので、なじみがありませんでした。今、Haskellの本を読んでいるので、「また出たなコイツ!」って感じなんです。

ちょいと調べてみました。

内包
内包(ないほう、Intension)とは意味論における基本概念のことであり、ある記号(言葉)が意義とする、対象に共通な性質のこと。通常は外延の反対語。
しかし、哲学者によってはより特別の定義がかせられることも少なくない。特に志向性(Intention)との関連で論じられることが多い。
http://ja.wikipedia.org/wiki/%E5%86%85%E5%8C%85

Wikiで参考にすると内包とは、哲学用語のようです。(たぶん)哲学も自然科学も数学も文学もごちゃ混ぜで語られた時代に概念として登場したようです。私は数学用語として、それを認識したようです。

Haskellでは、リストを定義する場合に「リスト内包表記」で記述することができます。数学の表記に似ているので、何ともいえない感動があります。頭の中の何かと何かがつながるというのは快感です。

以上、感想文はおしまい(笑)

【Haskell】すごいHaskellたのしく学ぼう!

  • 2012.07.15 Sunday
  • 00:32

まだ全然読んでいないのでレビューというレベルではないのですが、
面白そうなので紹介します。

私にとってHaskellは・・・・挫折したプログラミング言語の一つなんです。
関数型言語っていうのが、そもそも取っつきにくく
文法もよくわからなかったし、
で、何が楽しいのとか素で思ったりして
もう一回言いますが、つまり「挫折」したんです。

ということで、再チャレンジなんです。
目標は「ファンクター」「モノイド」「モナド」といった言葉を正しく理解することです。
モナド則がどうのこうのって語っているBlogをときどき見かけます。
もう何、言ってるのかさっぱりわからないので、くやしいんです。
自分も同じ土俵に立ってみたいんです。

と、まあ意気込みはあるんですが、
「すごいHaskellたのしく学ぼう!」という本を少しずつ読み進めていくと
訳本なのに、結構わかりやすい文章になっていて読みやすいです。


本書の中で、最初に頭がスコーンとした部分あるので紹介します。

イントロダクション
「純粋関数型プログラミングは違います。コンピュータに何をするかは伝えません。何であるかを伝えるのです。」

「純粋関数型プログラミング言語」ではなく、「純粋関数型プログラミング」というのがまずポイントですね。純粋関数型プログラミング言語というツールがどうのこうのではなく手法の事を指していることが分かります。手続き型プログラミングをターゲットとしてプログラミング言語でも、がんばれば関数型プログラミング的な事はできるからもしれません。だから、プログラミング言語がどうのこうのというのは本質的ではないって事なんですね。で、ここからさらに重要、手続き型プログラミングの本質は、「何をするか」をコンピュータに伝える事で、純粋関数型プログラミングは、「何であるか」を伝えること。イントロダクションの最初に書かれているのですが、ものすごく直球でわかりやすく、この手の説明が、今後も続いていくに違いないと思うと、自分の知らない何かがあって、それを知ることができると思うと、わくわくします。

 

・・・まあ私の場合、文法とか覚えれなくて途中で挫折してしまうんですが・・・・。


ああ、そうそう、この本はプログラミング言語の入門本ではなく関数型プログラミングの入門本とみた方が良いのかもしれません。全部読んでないので分かりませんが(笑)

calendar

S M T W T F S
    123
45678910
11121314151617
18192021222324
252627282930 
<< November 2018 >>

あわせて読みたい

あわせて読みたいブログパーツ

selected entries

categories

archives

recent comment

  • 【キーボード】6年前のRealForceを復活させることはできる!?その3
    art55 (05/22)
  • 【キーボード】6年前のRealForceを復活させることはできる!?その3
    分解大好き (05/18)
  • 【.NET Framework 4.5】 IListがIReadOnlyListを継承してない理由。
    art55 (02/04)
  • 【.NET Framework 4.5】 IListがIReadOnlyListを継承してない理由。
    Gen (02/04)
  • 【キーボード】RealForce が壊れて帰ってきた。
    art55 (04/29)
  • 【.NET Framework 4.5】 IListがIReadOnlyListを継承してない理由。
    art55 (02/23)
  • 【.NET Framework 4.5】 IListがIReadOnlyListを継承してない理由。
    かるあ (02/22)
  • 【C#】Dictionaryの実装・データ構造・アルゴリズムを観察する。
    art55 (01/16)
  • 【C#】Dictionaryの実装・データ構造・アルゴリズムを観察する。
    karuakun (01/16)
  • 【NetOffice】【Excel】死なないExcelプロセスをKillする。
    art55 (12/05)

recent trackback

recommend

recommend

recommend

C#プログラマのための.NETアプリケーション最適化技法 (Programmer's SELECTION)
C#プログラマのための.NETアプリケーション最適化技法 (Programmer's SELECTION) (JUGEMレビュー »)
Sasha Goldshtein,Dima Zurbalev,Ido Flatow,サシャ・ゴルドシュタイン,ディマ・ズルバレフ,イド・フラトー

recommend

ろんりと集合
ろんりと集合 (JUGEMレビュー »)
中内 伸光
とてもわかりやすいです。

recommend

recommend

シャノン・ノイマン・ディジタル世界
シャノン・ノイマン・ディジタル世界 (JUGEMレビュー »)
市川 忠男
4章がリレーショナルデータベースな内容になってます。ページ数があまりありませんが、ポイントがものすごく的確にまとまっていて、感動します。

recommend

recommend

東プレ Realforce91UBK-S 静音キーボード 静電容量無接点方式 変荷重 ブラック NG01BS
東プレ Realforce91UBK-S 静音キーボード 静電容量無接点方式 変荷重 ブラック NG01BS (JUGEMレビュー »)

テンキーレス、静音のRealForce91UBK-S。スコスコ感がたまらなく気持ちいいです。家と会社で2台持ってます。

recommend

recommend

プログラミング.NET Framework 第4版 (プログラミングシリーズ)
プログラミング.NET Framework 第4版 (プログラミングシリーズ) (JUGEMレビュー »)
Jeffrey Richter
発売予定美 2013年10月10日。.NET Frameworkとお付き合いする人のバイブルですね。

recommend

recommend

キャット・シッターの君に。
キャット・シッターの君に。 (JUGEMレビュー »)
喜多嶋 隆
私のイラストレータデビュー本です。

recommend

Essential .NET ― 共通言語ランタイムの本質
Essential .NET ― 共通言語ランタイムの本質 (JUGEMレビュー »)
ドン・ボックス,クリス・セルズ,Don Box,Chris Sells,吉松 史彰

links

profile

search this site.

others

mobile

qrcode

powered

無料ブログ作成サービス JUGEM