今ではプログラミングできないわけではないけど、そういえばプログラミングは完全に独学と言っていい。 いや、大学では数学をやっていたので、FortranとかLispはちょっとやった。 なので「完全に独学」といったら嘘になる。 それでも、いま仕事で使っているコンピューターの知識は、基本的にすべて書籍を通して独学したものだ。 そこで、自分が何の本を読んでプログラミングを実務で使えるくらいにはなれたのか、アフィリエイトと宣伝を込めつつちょっと振り返ってみてもいいかなと思って走り書きしてみる。 テキストフィルターを書きまくるとこから始めるといいと思う プログラミングぜんぜんやったことない人が「プログラミング完全に理解した(ダニング・クルーガー的な意味で)」という実感の端緒を得るまでには、まず「テキストフィルタを書きまくる」のがわりと近道だと信じている。 コンピューターを使うことがインターネットを使うこ
1. レキシカルスコープとダイナミックスコープの違い 言語によって、変数のスコープに関する仕様が異なる。スコープには、レキシカルスコープとダイナミックスコープがある。採用しているスコープにより、変数の参照の仕方が違う。 レキシカルスコープでは、プログラムとして書かれた字句を解析すれば、変数のスコープを把握できる。実行時のことは考えなくて良い。これに対して、ダイナミックスコープでは、実行時における関数の呼び出され方により、参照できる変数が異なる。 用語の説明を見る前に、具体例を見た方が理解しやすい。 Scope (computer science) - Wikipedia の Lexical scoping and dynamic scoping によると、 … if function f invokes a separately-defined function g, then under
序章 はじめに LISPは冗談に「計算機を誤用するための最も賢い方法」であるといわれてきた.この描写は大変な賛辞であると私は思う.この言葉によって LISPの持つ完全に自由な雰囲気が伝わってくるからである.――― LISPは,我々の最も才能のある人々が,以前は不可能であった試行を行う手助けをしてきたのである. ハッカーにとって,簡潔さより大事なことがある.自分のやりたいことがやれることだ.プログラミング言語の歴史をふりかえってみると,「正しくない」と考えられる行いをプログラマがするのを防ぐために驚くべき程の努力が払われて来た.これは危険なほどにおこがましい計画である.プログラマが必要とするであろうことを,どうやって言語設計者はあらかじめ知ることが出来ると言うのだ? 言語設計者は,ユーザを自分のミスから守ってやらなきゃならないようなまぬけではなく,設計者が考えもしなかったようなことを実現で
一部の方々にはお待たせいたしましたが,この度「Common Lisp と 人工知能プログラミング」の上巻を出版しました.この本は電子書籍です.上巻はCommon Lisp のプログラミングについてで,下巻が人工知能プログラムの説明になります.内容の概要は序文を本のサイトに掲げましたので,ご一読のうえ是非お買い上げをお願いいたします. いまだに,日に何人かはこのブログにたどりついて Common Lisp 関連記事を読む新しい方がいらっしゃいます.また,再訪される方もいらっしゃいます.Common Lisp と 人工知能プログラミング[上]はこのブログ記事のCommon Lisp関係の記事をまとめて書き直し,さらに発展させたものですので,このブログ記事を少しでも参考になると思われたかたは是非購入をお勧めいたします. 本の購入サイトはこちらになります.
https://github.com/shinh/sedlisp Lisp インタプリタを書きました。 sed で。 https://github.com/shinh/sedlisp/blob/master/sedlisp.sed README に書いた通り、それなりにややこしいプログラムも動く気がします。具体的には eval.l として、 eval の無いところで eval を実装しました。で、その上で FizzBuzz なんかが動きます。これはつまり S 式のパースは省略した Lisp のインタプリタと言って良いので、 sed で書かれた Lisp の上で Lisp が動いて、その上で FizzBuzz が動いてることになります。ちなみにもう一段かますことはできませんでした。 Ruby で書いた実装でも動かないので、 eval.l がとりあえず循環できない作りになってしまってるみたいで
Up: 不完全性定理のLisp, Mathematicaによる記述 G. J. Chaitin Godel's Proof of his Incompleteness Theorem の例をMathematicaとCommon Lispで書き直した。これは「証明」というよりも「ゲーデルの定理の主張」を説明するための文書である 準備運動 Mathematicaの場合 Schemeの場合(MIT Scheme) Common Lispの場合 ゲーデルの定理 Mathematicaの場合 Schemeの場合(MIT Scheme) Lispの場合 うそつきのパラドックス:「この文はうそである」 ゲーデルの定理:「この命題は証明できない」(真なのに証明できない命題がある) 準備運動 これは自分のコードを出力するプログラムの例でもある Mathematicaの場合 Mathematicaで書くともっ
アキバ系!というタイトルが入っているので萌え系かと勘違いしそうになるが、 コンピュータ/テクノロジー系のPodcastである。 レギュラーメンバー全員がIT業界の前線で働いているため、実地に基づいたトー クが魅力。 テクノロジー系のPodcastだが、エンターテインメント性を重視した異色な作り が特徴を持つ。 今回のゲストは元スクウェア・エニックス、現nVidiaの橋本和幸氏! 【登壇者プロフィール】 橋本和幸(はしもと・かずゆき) 経歴 86年 中央大学理工学部卒業、 86年 日本シンボリックス株式会社 AI、3DCGの技術担当 95年 株式会社スクウェア 入社 プログラマー CG技術統括、 96年 スクウェアLA VP Technology就任 98年 スクウェアUSA ホノルルスタジオ VP R&D 00年 株式会社スクウェア 執行役員 研究開発担当 就任, 00年 スクウェアUSA
This is a collaborative project that aims to provide for Common Lisp something similar to the Perl Cookbook published by O'Reilly. More details about what it is and what it isn't can be found in this thread from comp.lang.lisp. The credit for finally giving birth to the project probably goes to "dj_special_ed" who posted this message to comp.lang.lisp. If you want to contribute to the CL Cookbook,
先日、QuickdocsというWebサービスを作りました。 Lispライブラリのドキュメント集約サイト「Quickdocs.org」を作りました - 八発白中 アプリ部分はほとんどCommon Lispで書かれています。今までもいくつかCommon LispでWebアプリを書いたことはありますが、公開されたWebサービスはこれが初めてです。 公開当初は半日に1回落ちたり、表示が変になったりしていました。そこで2週間ほどかけて、不具合の原因を突き止めたり、それを修正して堅牢にしたり、レスポンス速度を改善したりしてきました。 Common LispのWebアプリの運用ノウハウが少し溜まってきたから車にはねられるなどする前に共有したい 2013-03-06 02:06:20 via web 試行錯誤を繰り返してきており、伝えたいことも多いです。書いてみるとかなり雑然としてしまったのですべての人向
地球上でもっともパワフルなプログラミング言語であると言われながら、その謎めいたシンタックスやアカデミックな評判の高さなどから敬遠されることもあったLisp。そんなLispの不遇な時代に終わりを告げるのが本書『Land of Lisp』(Lispの国)です。不思議なマンガやout-of-this-worldなゲームの数々とともに、ベテランLisperの著者が、謎多きCommon Lispを伝授。リストの操作、入出力、再帰などの基礎から始めて、さらにマクロや高階プログラミング、ドメイン特化言語などへと話題をすすめながら、Lispのより高度なテクニックについて解説しています。 翻訳者によるサポートページ(http://practical-scheme.net/wiliki/wiliki.cgi/Shiro:LandOfLisp) 謝辞 はじめに Lispがクールで、そして奇妙なわけ Lispがそ
Emacs23.2からJavaScriptのためのメジャーモードとしてjs-modeが組み込まれている*1。auto-mode-alistに("\\.js\\'" . js-mode)が既に登録されているので*2、拡張子が.jsなファイルを開けば自動的にjs-modeとなるはずだ。 このときファイルを実行する方法として2つの選択肢が*3ある。 1つはEmacs上でJavaScriptのインタプリタを走らせる方法で、もう一つはFirefoxに実行させる方法。どちらが必要かは場合によるので*4、両方使えるように設定する。 Ejacs Ejacsというのは全部Emacs Lispで書かれたとかいうJavaScriptインタプリタ。 Google Code Archive - Long-term storage for Google Code Project Hosting.からzipを落としてき
プログラミング言語Lispの考案者で、人工知能(AI)分野の第一人者であったJohn McCarthy氏が、米国時間10月24日に死去した。84歳だった。スタンフォード大学工学部がツイートで明らかにした。 McCarthy氏はマサチューセッツ工科大学時代の1958年に、AIで使用されることになるプログラミング言語Lispを考案し、1960年の論文「Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I」でその設計を公開した。Lispは、Fortranに次いで2番目に古い高水準言語であり、現在も使われている。 McCarthy氏は、人間の知能の中には機械をプログラミングしてシミュレーションすることができるほど正確に記述できる側面があると感じていると語っていた。
howm wiki より。笑える。 今週気づいたこと: lisp だと文字どおり (loop (print (eval (read)))) で repl ができる
はじめに 再利用性の高いプログラムを書くにはどうしたらよいのだろう、と、いつも思う。 学生のころ、BASIC と C と Verilog を勉強して、社会人になってから Ruby をちゃんと勉強した。正確には学生のころも Ruby さわったことがあったんだけど、「正規表現が使えてセミコロンがいらない C 」くらいにしか思ってなくて、それよりも踏み込んで便利さを知ったのは、けっこう最近。 再利用性が高いプログラムを書くのに、Ruby はやっぱり便利だ。 Ruby が便利な理由としては「メタプログラミングが得意」とか「オブジェクト指向だから」、とか、いろいろ言われるけれども、個人的には「『DoA(Data Oriented Approach)』を気軽に実践できる」というのが大きいと思う。 DoA というのは「データ中心アプローチ」とも言われていて、データ構造の変遷を中心にプログラムを設計してい
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く