Hatena::ブログ(Diary)

しんちゃんの日記

2016-06-19

自分なりの宣言的プログラミングの定義

関数型言語や論理型言語(Prolog)は宣言的にプログラミングが出来ると入門書には書いてることがあります。
一方で、Javaの本でも宣言的なコードと書かれたものがあります。
どうもメソッド呼び出しのみが並ぶようなコードっぽい。

となると、ifやfor等の制御構造が無ければ宣言的と言う事なのかな?
まあ、手続き型言語関数オブジェクト指向も、もとは抽象的に扱うための物ですしね。
宣言的であるのと、参照透明な事は関係ないと考えればしっくりきます。
昔、2chで型がある言語で書く人はクラスをよく書くけど、型のない言語で書く人はクラスをあまり書かないとか見かけましたが、ある意味ではクラスを書かなくて済むくらいになるのが手続き型言語抽象化の理想ではないかと。
手続き的な処理は一切書かなくて良くて、全てメソッド関数の呼び出しだけで完結できるようになったら、関数型言語と同じくらいの抽象度になっているのかもしれません。

そう言えば、次期JavaScriptが末尾再帰最適化出来るようになるそうですね。
理屈の上では手続き型言語だって出来ると思ってましたので、他の手続き型言語にも採用されていくと思います。
しかし、Haskellはいつの間にか普通の(単純な)再帰も(恐らく内部で末尾再帰に変換して)ループになるようになってました。
これは地味にうれしい。
これも、いずれは手続き型言語に採用されていくように思いますが、もう少し先でしょう。

C#型推論もまだまだですね。
そして、あれ以上の推論は手続き型では無理な気はしますね。
手続き型で関数型言語並みの抽象度になるのは結局LLやsmalltalkの様な型の無い言語だけのように思います。

だったら、型があって抽象度の高いHaskellが(ry

2013-03-23

Haskell入門以前(Kindle版)が消える前に2冊売れてた・・・(ついでに近況報告)

誰ですか。
あんな内容の薄い本にわざわざ99円も払っちゃった人は。

自分で書いといてなんですが、99円の価値も無いですよ・・・。
(だから犠牲者が出る前に消したのに・・・)

あ、電子書籍を作るために一太郎買いました。
小説は絶対縦書きじゃ無いと嫌ですものね。

もう一つ、WinStoreアプリを作り始めたのですが、中身は出来たけど、それに使う画像を用意する方に苦労してます・・・。
PCで絵を描くのは、私には無理です。
レイヤーとかの使いどころが理解できないです。
ペンタブレット買うお金が無いです。
私の腕では、マウスを本気にさせられません。
背景が透明な画像の作り方はマスターしたので、画用紙に絵を描いてスキャン→色調整→背景を透明にする。と言う方法で頑張ってみる予定。

平行して、いつかここでバイナリファイルを扱ったお題が出せるように勉強しますが、当分は更新しないと思うので、期待はしないで下さい。

2013-02-10

VisualStudioExpress2012 for Windows8が、不安定な件

弟夫婦が新しくPCを購入。
OSがWin8だと聞いて、「おっしゃ!姪っ子(2歳)が楽しめるアプリ作ってみるか!」と意気込んでみたのは良いのですが、試作用に適当な画像を背景とした所までは良かったのですが、その上にさらにキャラクター(予定)用のこれまた適当な画像を置いたら、まだ1行もコード書かないうちから、アプリを(デバッグでもリリースでも)実行するとOSを巻き込んでフリーズします…
(countコマンドのWinStoreアプリ版を作った時も、たまにOS巻き込んでくれてましたし…)

動く絵本的なものなら作れるかな?と思っていたのに、前途は多難そうです…

for Desktopはもうちょい安定してたと思うんだけど…

WinStoreアプリやWinRTは、新しいプラットフォームですし、不安定な所が多いみたいです。