「Lisp」を含む日記 RSS

はてなキーワード: Lispとは

2009-05-16

http://anond.hatelabo.jp/20090516105845

CでもLISPでもPerlでもRubyでもなんでも良いけど

例として

C言語だって、どういうアルゴリズムを使っているか?という部分で十分に意図を伝達できると思います。

逆に言えば、作り手の意図がないC言語 という場合もあるけれども、熟練すればするほど、意図を込めていく物だと思う。

実際、長年使ってこられた古いソースなのどは読み込めば読み込むほど、過去どういうバグがあって、どういう経緯でそういう書き方になったのかが見えてくる。

もちろん、こういうところには適宜コメントを入れていくけど、設計書からはうかがい知れない物が多く言語には込められていると思う。

そう言う物を設計書にとはよく言うけど、設計書ではC言語で表したいことを十分表記出来ないんですよ。

C言語でないと感銘に表記できない思想という物があると思います。

幻想かも知れないけれど。

あえて言うなら、図は書きたいけど・・・複雑なプログラムの図は2次元じゃ書ききれないよ。

2009-02-02

プログラミング自己PR

経歴書『自己PRFortranCOBOLからLispまで、様々なプログラミング言語に幅広く精通しております。』

担当者「幅が広いのか狭いのか微妙に分からないね!」

2009-01-27

http://anond.hatelabo.jp/20090127145717

lispは、抽象化意味でです。

層を薄くしても、適切な抽象化ができないか考えているんです。

http://anond.hatelabo.jp/20090127144322

こういう、層の積み方をもっと工夫して圧縮できないかなとは思うんですよね。

全部アセンブラlispで書くとか。

2008-12-31

http://anond.hatelabo.jp/20081231173837

Exploit系のバグなのか、わざとやっているのかが外部ツールで判別付かない場合がある

ツールにひっかかるから、ですらないと思う。単にそういう技が必要なくなっただけ。 そもそもexploitに晒されるほどポピュラーでかつOSの動的リンク機能が使えるほど近代的な環境になってさえ、動的コードセグメントを使ってまで最適化スピードアップしなきゃいけないような変態的ケースは今じゃ殆ど無いんじゃねーの。ゲームPC DEMOくらい? ひょっとしてケータイでもそういうことをやるのだろうか。 そもそもそれ以前にアルゴリズム改善とかアーキテクチャの見直しとかできることは山ほどあるような気もするが。 というかツールで監視するくらいならCPU保護機能でオフにするんじゃないのという気もする。

人工知能的なことをやりたいのであればCは圧倒的に不向きで、そもそもevalがある言語(Python/Ruby/etc..)使えばいいんじゃねーの、という話になる。もちろん Lisp/Schemeもそうだけど。。。

(追記に対してレス…)

void *(*psrc)(void *);
void *pdst = (void *)psrc;
究極
printf("%x\n",(int)psrc);

そーいうのは曖昧と呼ぶの? どちらもC言語的には未定義動作で、単にコンパイラがこういう風にコンパイルしますよということが分かっているから書くのだし、何もambiguousではないよね。

Exploitまがいのコード

そーいうことはxbyakとか使えば楽にできるとおもう

http://anond.hatelabo.jp/20081231093830

×クラックされるから関数ポインタを使わない

メモリ上にプログラムを自力でロードして、それを関数ポインタに変換して関数コールすると、Exploit系のバグなのか、わざとやっているのかが外部ツールで判別付かない場合があるので、この方式は使わなくなり、現在はDLL呼び出しやSO呼び出しが一般的。

ちゃんとExploit系に使われる関数ポインタクラック対象ってExploitというキーワード書いたのに(T_T)。高々、コンパイラ保証してくれる範囲の関数ポインタは安全だから使えばいいと思うよ。

ポインタ曖昧性はこんな感じかなぁ。

void *(*psrc)(void *);

void *pdst = (void *)psrc;

究極

printf("%x\n",(int)psrc);

だもんなぁ、任意引数関数ジャンプテーブルなんかで

こういう技が必要になることもあるし。

Cって面白いと思う。

Expolitまがいコード

char *prog="\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";

\x00は適当な実行コード

void *(*psrc)(void *) = void *(*)(void *)prog;

(*psrc)(NULL);

こんな感じで、データ配列プログラムとしての実行で、昔はあったけど、いまはこういうコードDLLとかSOとかで書くのがお作法だよねーと

さらにいえばWindwosならCOMで書けと・・・

どうみても、Code Exploitバグに見えるもの、この手のコードは。

外部ツールがバグとして引っかけちゃうから書かないのが最近の主流だと思う。書く必要もほとんど無いし。

Lispのようにプログラム自身がメモリ上に動的にプログラムを必要に応じて計算しながら書き込んで、それを実行すれば、ある意味人工知能的なプログラムとその美しさが実現できるけど、それは一般的なプログラムの範疇ではバグの検出が複雑になるので、やっちゃダメとはいわないが特殊分野の技法だなぁと思う限り。

2008-11-11

http://anond.hatelabo.jp/20081111103507

lispとかawkとかsedとかmakeとかshとかみたいに生き残れたら凄いけどなあ。

というか未だにCOBOLで新規開発している俺(と俺の職場)って一体。

隣の席のオバサンなんか汎用機のアセンブラいじってたし……。

ちなみに俺の好きな言語D言語です。20年後はDがスタンダード!!

2008-10-27

http://anond.hatelabo.jp/20081027001018

元増田じゃないけど、LISPとかの話じゃないかな。

ループ再帰で実現できるけど、再帰ループで実現できない。だから論理的には、再帰の方がより一般的。(再帰さえあればOK)

ただ、実際的な問題として再帰ループはそれぞれ別に考えたほうが良いとは思う。(汗)

再帰ツリー構造とか、再帰的なものだけに適用するべきだろう。(遊ぶとき以外は)

2008-10-11

私のプログラム

初めは小学生の頃か。

実物のスペースインベーダー記憶はない。

しかし、それを皮切りにアーケードゲームのみならず、ゲームウォッチ、ケームセンター嵐などを経て、ファミコンが登場する「ゲーム」の時代だった。

「ゲーム」コンピューターゲーム意味になった時代だった。小学生も「コンピューター」にワクワクした。

21世紀コンピューターにより人工知能ができる。そんな時代だった。

でも、アルファベットを知らない小学生BASICは難しかった。ぴゅう太がせいぜいだった。

中学生学校PC-9801があった。後のパソコンである。

PRINT」で文字を表示する。「GOTO」で行き先を変える。それは分かった。でも何をすればよいか分からなかった。

だから「ベーマガ」で16進数を打った。でも動かなかった。何度も調べ、直し、試した。デバッグした。

してようやくゲームが動いた。ゲームはつまらなかった。

でも動いた。自分の入れた文字で数字でコンピュータが動いた。自分で動かした。動かせた。

BASICで線を引きマシン語で文字を動かした。

高専に進んだ。Turbo Pascalコラムスもどきを作った。

初めてフルスクラッチで書いた。配列も使った。

小学生のころから6年が過ぎていた。

Turbo Cも使った。IDEで使うそれは、インタプリタのノリだった。

FM-Rレイトレースもした。一晩かけて、エラーが起きていた。

でも、構造プログラミングを学んだ。ポインタも学んだ。マシン語の知識が役立った。

Solarisも使った。EmacsやXも使った。オブジェクト指向も知らずC++にも触れた。

GC構造体を代入して使い回し、Xサーバを落した。

家のノートFreeBSDを入れた。rootになった。

awksed正規表現を学んだ。そしてperlに出会った。

コラムスもどきを作ってから6年が過ぎていた。

テレホーダイにした。Mewを使った。チャットをした。

perlで掲示版の書き込みをチェックし、madokaで遊んだ。CGIを書いたりした。

脆弱性を見つけた。作者にメールした。ドキドキした。

perlと出会ってから6年が過ぎていた。

オープンソースプロジェクトに参加した。

はてなに出会った。JavaScriptに出会った。

BookmarkletgreasemonkeyAjaxオブジェクトだらけだった。

初めはゲームだった。でも最初だけだった。

ハードを叩き、ライブラリを叩いていた。

サーバを叩き、ブラウザを叩いてきた。

気が付いたら24年が経っている。

今、pythonで書いている。

ようやく、言語の違いには慣れてきた。でも、まだLISPを使った事はない。

道はまだまだある。未知の世界につながっている。

作りたい物が本当は何かは分からない。作れる物が本当は何かは分からない。

でも、何かがあるような気はする。だからプログラムしてみる。

どんなふうに動くのかは分かってない気がするけれど、分かっている事もある。

今も「コンピューター」にワクワクしている。

それが今の私のstatusだ。

http://anond.hatelabo.jp/20081011173016

2008-10-10

女子クラスで理解するプログラミング言語

こんなところかな。異論は認める。つか、異論をくれ。

異論ありがとう


あ、元ネタ忘れてた:http://anond.hatelabo.jp/20080729035820

2008-10-02

Classic Texts in Computer Science

リブログです。

    http://www.zafar.se/bkz/Articles/ClassicCompScienceTexts

    http://www.zafar.se/bkz/wiki/view/43bafac8c8570f4f

    にあったけど、無くなっていたので

    http://web.archive.org/web/20060823143349/www.zafar.se/bkz/home/classictextsincomputersc.html

    から拾ってきた。

    でも書いてる途中に↓を見つけてしまったのでした。

    Classical Computer Science Texts

    2008-09-22

    lispといえば

    AutoCADだよなと思う。なんでlispなんかな。

    そういえばPhotoshoppythonだよな。なんでなんかな。

    高いソフトって変わってるよな。あんなバカ高いソフト誰が買うんだろうな。

    そういえばここってMochikit使ってるよな。はてなのみんなもMochikit大好きなんかな。

    AutoCADPhotoshop増田、みんな関数型嫌いなのに使ってるのかな。マゾかな?

    それとも好きなのに悪態ついてるのかな。ツンデレかな?

    それにしても、なんで日本じゃlisppythonメジャーにならないのかな。なんでなんかな。

    でも、Google先生は「ruby S式」って言ってるけどな。

    rubyってS式すきなんかな。変態かな?

    http://anond.hatelabo.jp/20080922131514

    2008-09-04

    2008-06-18

    http://anond.hatelabo.jp/20080618121019

    コーディングはまぁ可能だと思うが、はたして移動時間だけで設計ができるかなー?

    試行錯誤を伴うチャレンジングな仕様だとちょっと厳しいかも。

    1000行書いては500行消しみたいなことしてる俺にとっては、

    普通だと思う。

    すっきりまとまったらちょっと嬉しいよな。

    でもLISPならそんなに消すこともないんだぜ?

    2008-05-13

    http://anond.hatelabo.jp/20080513171129

    lispがいかに優れているか

    さすがにそれは内容(およびそこから透けて見える話し手の自意識)がキモいんだろうよ。プログラマ同士の会話ならなんでもOKって意味じゃないだろ。今回の話のポイントは、オタク同士の会話なら内容問わずキモい的な印象になりがちなのは何故かって点じゃないか。

    http://anond.hatelabo.jp/20080513171129

    lispがいかに優れているかとか語り出すのがたまにいるが

    キモイキモイ

    オタクキモイというか、

    「こっちが興味がないことを延々と語り続ける奴」がキモイ

    で、オタク頭でっかちが多いから、必然的にそうなる可能性が高い。

    ゆえにオタクキモイとなる。

    オタクキモさはコミュニケーション違和感にある。

    たとえば、会話でもそうだし、服装でも。

    http://anond.hatelabo.jp/20080513145949

    プログラマ同士の会話はOKって初めて聞く見解だ

    lispがいかに優れているかとか語り出すのがたまにいるが

    キモイキモイ

    2008-04-14

    http://anond.hatelabo.jp/20080414014639

    あと、書き忘れてたけど、その流れで言えば、日本でもラテン語ギリシャ語欧米古典文学を学ぶべきだ、ってなるのが筋なんじゃねーの?

    さて、

    関数型言語コンパイラOSが必須科目なのはおかしい

    に反論すればいいんだな。オッケー。

    http://anond.hatelabo.jp/20080414002336

    何をそんなにムキになってんのかさっぱりわからんが。そんなに古典が嫌いなのか?

    具体的にどう役に立つんだよ。お前そういう説明全然出来てないだろ。喩え話ばっかで。

    あなたが単に理解できてないだけのことでしょ。古典ステータスシンボルになるなんて自明のことなんだから。

    何を言っても「そんなの役に立たん、俺の知ったことじゃない」と言われるんだから仕方ないよ。限られた範囲のことを限られた水準でしか書かない人は限られた素養だけで済むかも知れないが、それ以上のことをしようと思ったら幅広く学ぶしかないってのは自明のことなんだが。

    俺はお前さんの上げたLispやら低レベル言語やらコンパイラやらの意義を、全部具体的に説明できるぞ。だから基礎教養だといってるんだ。

    ほう、じゃあ例えば情報系の学科には待ち行列とかパターン認識とかそういうことを研究している人たちもいるわけだが、そういう人たちが「関数型言語コンパイラOSが必須科目なのはおかしい!俺はそんなものを使わないのだから学部で教えるな!必要な人だけが研究室ゼミでやったらいいだろう!」と言ったとしたらどうするのかね?あなたが言っているのは結局そういうことなんだが。あなた自身があなた自身の納得できる理由で理解しているかどうかなんてどうでもいい。俺にとっては、エンタメ系のライターがなぜプログラミングをする必要があるのか想像できないが、だからといってあなたに対して「プログラミングなんか無駄だから文章の練習をしろ」なんて強要すべきなんて思っちゃいないよ。

    微積分学や古典文学という体系は、お前さんのあげた基礎教養科目より明らかに大きいだろ。

    何度も言うように、高校では古典文学の大系を網羅してるわけじゃなくて、古典文法を教えているだけだ。それから、微積がどう関係があるんだ?あんたはどうせ、位相とか測度まで理解しようという気じゃないんだろうから、式変形ができる程度のことだったら線型代数なんかよりよっぽど簡単だろうにさ。

    鼻歌交じりにバイク解体できる外人の整備工が、箸をうまく使えなかったら、箸を使うのはバイク解体するより難しいということになるのか?

    なにを言ってるのかね。それをこそ俺はあなたに問うているのだが。

    古典漢文の知識ひけらかすことがどうプレゼンに影響すんだよ。

    あなた、外人プレゼンとか文章とか見たことないの?古典文学から気の利いたフレーズ抜き出したりして話の取っかかりにしたりしてるでしょうに。

    つーか、そうか、一貫した主張も出来ない奴がえらそうにプログラマを語ってるのか。死ねよもう。

    「できない」ことと「しない」ことの区別ぐらいはできるようになってほしいね。

    ロックポップスを聞くためにクラシックを聞かなければ楽しさが分からない、とかいう主張はアホだ、と言ってるだけだが。

    誰もそんなことは言ってないだろ。さっきから思っていたのだが、君は何か俺の主張を勘違いして、明後日の方向に必死で反論しているようだな。

    文学なら近現代のそれが、あるいは世界の名作文学が優先じゃないかと言ってるだけだが? 日本古典専門教育を優先する理由はどこにもないだろ。

    だから、高校国語教育文学教育じゃないと言っているのに。読み書き能力教育なんだってば。文法を教えるついでに一番有名な作品のさわりを教えておこうとしているだけだよ。

    しねーよ。公教育ってのは平均と底辺を引き上げるためにやるんだぜ? 勝手に貪欲に勉強するような本当に優秀な奴は、海外留学でもなんでもやってるよ。

    引き上がってすらいない君は底辺よりもっと下なんだろうね。じゃあ君は何のために大学に行ったんだ?

    むしろ俺は、大学勉強しないような奴は大学に来ていただかなくて結構だと思っている。専門学校とか、あるいは実務の中でOJTで鍛えた方がよっぽどスキルアップになるんでな。

    ところで東大とか京大とかって国立なの知ってたか?東大とか京大とかの理学部文学部を覗いてごらん、君が想定していない公教育の意義がわかると思うよ。

    それから量子力学知ってると信号処理がわかりやすくなるんだけどね。まあいいや。

    いや、それはどうか。逆ならまだわかるが。

    自分がまだ勉強中だというくせに、えらそうに人の忠告を否定するなよ。とりあえず「不確定性原理」について調べてみな。どっちにしても、基本的に工学の理論物理数学からパクってきて発展するものなんだから、発想としては物理を学んでいた方がよくわかるのは自明。実際俺は、仕事信号処理を扱うようになったとき、量子力学教科書を引っ張り出してきてもう一度読んだよ。

    同様に、古典重要性を無理強いする権利はお前にはないわな。

    だから誰も無理強いなんかしてないっての。必要なことだけ学びたい人は工業高校とか高専とか専門学校に行け、必要ないことまで学びたい奴が普通高校に行けと言っているだけなんだが。

    http://anond.hatelabo.jp/20080413235442

    狭い業界の技術専門誌だけに書いて生きていくつもり?

    俺はエンタメ系がメインだ。技術誌に書いたことはない。

    日本語を書く人にとっての古典にあたると言っているの。

    具体的にどう役に立つんだよ。お前そういう説明全然出来てないだろ。喩え話ばっかで。

    俺はお前さんの上げたLispやら低レベル言語やらコンパイラやらの意義を、全部具体的に説明できるぞ。だから基礎教養だといってるんだ。

    文系の人なんかだったら、古典なんて寝てても理解できるけどLispなんて一生理解できないといわれると思うよ。

    微積分学や古典文学という体系は、お前さんのあげた基礎教養科目より明らかに大きいだろ。得意不得意の問題じゃない。

    鼻歌交じりにバイク解体できる外人の整備工が、箸をうまく使えなかったら、箸を使うのはバイク解体するより難しいということになるのか?

    あと、文系でも、言語学分野の人なら基礎的な形式言語理論は押さえておいて損はないはず。

    へー、あなたプレゼンしないんだ。顧客投資家向けに気の利いたフレーズ一つ思いつかないようでどうするの?

    古典漢文の知識ひけらかすことがどうプレゼンに影響すんだよ。

    俺はあなたの論点の不備を一つ一つ指摘してるだけで、自分が一貫した主張をしようとしているわけではない。

    どこでどう不備が指摘できてるというんだww つーか、そうか、一貫した主張も出来ない奴がえらそうにプログラマを語ってるのか。死ねよもう。

    じゃあ、ロックポップス聴いてない奴がクラシック聴いちゃだめなわけか?そんなの勝手だろ。

    ロックポップスを聞くためにクラシックを聞かなければ楽しさが分からない、とかいう主張はアホだ、と言ってるだけだが。聞きたい奴だけ聞けばいいだろ。

    あのさあ、「ジェネラリスト」の意味わかってる?いろんな分野に視野横断的に目が効く人のことを「ジェネラリスト」っていうんだよ。数学だけ勉強してれば文学歴史も語れるっていうのかい?

    文学なら近現代のそれが、あるいは世界の名作文学が優先じゃないかと言ってるだけだが? 日本古典専門教育を優先する理由はどこにもないだろ。歴史については何も言ってないし。

    自分が大学でサボってたことを自慢するなよ。普通はもっと勉強するんだよ。

    しねーよ。公教育ってのは平均と底辺を引き上げるためにやるんだぜ? 勝手に貪欲に勉強するような本当に優秀な奴は、海外留学でもなんでもやってるよ。

    それから量子力学知ってると信号処理がわかりやすくなるんだけどね。まあいいや。

    いや、それはどうか。逆ならまだわかるが。

    そんなのは個々人の価値観だろ。日本工業立国であるべきなんて考えを無理強いする権利は君にはないよ。

    同様に、古典重要性を無理強いする権利はお前にはないわな。つか俺もお前も別に無理強いなんかしてないだろ。

    2008-04-13

    http://anond.hatelabo.jp/20080413233342

    あのさあ、ライターだったらリード文に気の利いた文章一つ書けないでどうするよ。狭い業界の技術専門誌だけに書いて生きていくつもり?一般科学雑誌とか、もっとそういう野心はないわけ?そういうとき、古典の素養は必要だよ。

    古典が読めるってことはまったく評価にならんだろ。プログラマとしては。

    人間プログラマだけじゃないんだけどね。それに、言ってること理解できてるのかなあ。プログラマにとってのLispや低レベル言語が、日本語を書く人にとっての古典にあたると言っているの。

    そんなの情報系の基礎教養だ。微積分学や古典勉強するよりははるかに楽だし。

    それはあなたの場合でしょ。文系の人なんかだったら、古典なんて寝てても理解できるけどLispなんて一生理解できないといわれると思うよ。あなたは、自分が理解できなかったものを過度に難しいと思い込んでるだけ。

    ビジネス定型文書くのにはもちろん、企画書仕様書技術書を書くのにも、古典漢文の知識なんぞ必要ないだろ。

    へー、あなたプレゼンしないんだ。顧客投資家向けに気の利いたフレーズ一つ思いつかないようでどうするの?

    別に古典教育がどうなろうが観光ビジネスの改革にはならんだろうに。

    観光が産業として大したことない、というからその点に反論したまで。俺はあなたの論点の不備を一つ一つ指摘してるだけで、自分が一貫した主張をしようとしているわけではない。

    日本文学についてはそうかもな。でも、当の近代文学もろくに読んでない奴が、下敷きにだけ手出しても意味ないだろ。まずそっちが先じゃないかな。

    じゃあ、ロックポップス聴いてない奴がクラシック聴いちゃだめなわけか?そんなの勝手だろ。古典の方が近代文学より好きな人間だって沢山いるよ。俺だってそうだが。

    教育を強化するなら数学優先にすべきだな。あと英語の強化かな。古典なんか最後でいいよ。

    あのね、そんな優先順位つけるまでもなく、全部できると言っているの。

    古典数学よりジェネラルだとでも?

    あのさあ、「ジェネラリスト」の意味わかってる?いろんな分野に視野横断的に目が効く人のことを「ジェネラリスト」っていうんだよ。数学だけ勉強してれば文学歴史も語れるっていうのかい?

    足りてるわけねーだろ。仕事やりながら勉強してるような状態だよ。これが、高校でやってなきゃ偏微分とかと同レベルの理解度でしかなかったんだと思うとゾッとするね。基礎だけでも仕込まれててよかった。

    自分が大学でサボってたことを自慢するなよ。普通はもっと勉強するんだよ。自分が勉強しなかったことを、「高校で教えてくれなかったせいだ!」なんて言ってたら、これだからゆとりはって言われるだけだよ。

    数学系でも電子工学系でもねーもん。適当試験前の一夜漬けで切り抜けてた。終わったら速攻忘れた。あと量子力学なんか何に使うんだよプログラマが。

    使わないことは一切勉強しない人なんだ。ふーん。隣接分野から発想って出てくるもんだけどね。忠告しとくけど、俺が挙げたのは工学部のどこでも学びそうな分野だし、それから量子力学知ってると信号処理がわかりやすくなるんだけどね。まあいいや。

    俺が思ってるものと比べてるんじゃない。「古典と」比べてんだよ。ちゃんと答えろ。

    なんでそんなエラそうなんだ?だから、比べられないって言ってるだろう、何度も。少なくとも答えが自明に出る問題ではないし、客観的に妥当性のある調査ができるとも思えないと言っているの。

    日本が観光立国になるのと工業立国になるのとどっちがいいかという比較だろ。

    そんなのは個々人の価値観だろ。日本工業立国であるべきなんて考えを無理強いする権利は君にはないよ。

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