いろんなプログラミング言語に触るんですが
ObjectPascalはやっぱり好きですね
結構、型を自由に設定できる強力さを持っているんです
C++の型は名前を変えただけですが
ObjectPascalの型は独自に作れるので厳格にチェックできる
Haskellももちろん型が厳格かつ強力なんですが
ObjectPascalはポインタがあり
このポインタとさらに汎用ポインタを使った型を合わせて
継承も合わせて型キャストしたりすると
とても柔軟なプログラミングができて
それがDelphiのVCLの強みにもなっています
もちろんアカデミックな型としての強力さと表現力ならHaskellが上ですが
実務としての型としての使いやすさはObjectPascalも結構イケてるんじゃないかと思うんですね
ObjectPascalはやっぱり好きですね
結構、型を自由に設定できる強力さを持っているんです
C++の型は名前を変えただけですが
ObjectPascalの型は独自に作れるので厳格にチェックできる
Haskellももちろん型が厳格かつ強力なんですが
ObjectPascalはポインタがあり
このポインタとさらに汎用ポインタを使った型を合わせて
継承も合わせて型キャストしたりすると
とても柔軟なプログラミングができて
それがDelphiのVCLの強みにもなっています
もちろんアカデミックな型としての強力さと表現力ならHaskellが上ですが
実務としての型としての使いやすさはObjectPascalも結構イケてるんじゃないかと思うんですね
ラムダ計算論には型無しラムダ計算と型有りラムダ計算があります
もともとは型のなかったラムダ計算になぜチャーチが型を導入したかというと
いわゆる決定不能がラムダ計算に起きてしまうので型を導入したらしい
これは大雑把な捉え方ですが
lispは型無しラムダ計算に影響を強く受けており
Haskellは型有りラムダ計算に影響を受けていると思います
(もちろんlispもHaskellも他にもさまざまな概念も取り入れています)
なのでYCombinatorがそのままHaskellで書けないのはチャーチの思想に
合致しているからかもしれない
もともとは型のなかったラムダ計算になぜチャーチが型を導入したかというと
いわゆる決定不能がラムダ計算に起きてしまうので型を導入したらしい
これは大雑把な捉え方ですが
lispは型無しラムダ計算に影響を強く受けており
Haskellは型有りラムダ計算に影響を受けていると思います
(もちろんlispもHaskellも他にもさまざまな概念も取り入れています)
なのでYCombinatorがそのままHaskellで書けないのはチャーチの思想に
合致しているからかもしれない
最近ではTVはすっかり存在感を消しYouTubeなどのネット文化が中心なようです
これには大賛成なんですが
しかし今YouTubeで一体何が流行っているのか今ひとつわかりにくい
この点昔のニコニコなどはわかりやすかったんですがね
これには大賛成なんですが
しかし今YouTubeで一体何が流行っているのか今ひとつわかりにくい
この点昔のニコニコなどはわかりやすかったんですがね
最近のプログラミング言語は関数型言語でなくても
関数型言語の影響を受けて
イミュータブルな変数をできるだけ使う傾向が高いようです
ただイミュータブルな変数を使いこなすには
やはりlispのcar,cdr,consのようなものを使って再帰でリストをまわさないと
どうも使いにくいんじゃないかなと思うんですよね
イミュータブルな思想を導入するなら同時に
car,cdr,consと同じような機能も取り入れて欲しいなあ
と思ったりします
まあ自分で作ればいいんでしょうが標準で欲しいんですよね
関数型言語の影響を受けて
イミュータブルな変数をできるだけ使う傾向が高いようです
ただイミュータブルな変数を使いこなすには
やはりlispのcar,cdr,consのようなものを使って再帰でリストをまわさないと
どうも使いにくいんじゃないかなと思うんですよね
イミュータブルな思想を導入するなら同時に
car,cdr,consと同じような機能も取り入れて欲しいなあ
と思ったりします
まあ自分で作ればいいんでしょうが標準で欲しいんですよね
コメントをかく