letとletrecが必要なのはなぜか

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

うなぎ食べたい

乗り遅れたけど某所のうなぎ食べたい問題 >消しました(2012/07/05 18:15) それだけじゃあんまりなので、一般のNに対してN-queen問題を解くやつ (2012/07/05 21:30)

Project Eulerの問題をiPhoneでサクサク読みたい

です。 方針はとりあえず全問題をまとめて1つのhtmlファイルにして、それをpdfにすればいいかなっという感じ。 なのでまず、下のスクリプトで全問題をまとめた1つのhtmlファイルを作る。 (※ マルチスレッドじゃないので遅い(要学習)。エラーチェックも皆無な…

Project EulerをSchemeで(46-50)

そろそろProject Euler用のモジュールつくったほうがいいかな。 (use util.combinations) (use gauche.sequence) (use srfi-1) (define (integer->list i) (letrec ((i->rl (^i (cons (modulo i 10) (if (< i 10) '() (i->rl (quotient i 10))))))) (reverse…

Project EulerをSchemeで(41-45)

一週間ほどプログラムから離れてたら、括弧が恋しくなってきちゃって。 (use srfi-1) (use util.combinations) (define (integer->list i) (letrec ((i->rl (^(i) (cons (modulo i 10) (if (< i 10) '() (i->rl (quotient i 10))))))) (reverse (i->rl i))))…

Project EulerをSchemeで(36-40)

Schemeらしい書き方も勉強しなきゃ。 (use srfi-1) (define (integer->list i) (letrec ((i->rl (^(i) (cons (modulo i 10) (if (< i 10) '() (i->rl (quotient i 10))))))) (reverse (i->rl i)))) (define (list->integer l) (define (shift-d n) (let loop…

Project EulerをSchemeで(31-35)

いい加減アルゴリズム勉強しなきゃ。 (use srfi-1) (define (integer->list i) (letrec ((i->rl (^(i) (cons (modulo i 10) (if (< i 10) '() (i->rl (quotient i 10))))))) (reverse (i->rl i)))) (define (list->integer l) (define (shift-d n) (let loop…

Project EulerをSchemeで(26-30)

1ヶ月ほどご無沙汰してたけど、Kyoto.lispにも行ってきたことだし、もっとLisp勉強しよう。 今度参加するときはLT出来るようにネタを作っときたいな。 今回からGaucheのver.が0.9.2->0.9.3になりました。 iotaがコアに入って楽、という程度の使いこなしなん…

Clojureでスクレイピングしてみる - 並列ver.

前回の並列化ver.が思いの外簡単にできたので。 参加者の一覧を取得した後、並列でtwitterのURLを取得する(parallel-get-twitter-url*1の部分)ように変更。 他はprintlnの場所を変えただけ。 (ns hoge.core (:use [net.cgrand.enlive-html])) (import 'java.…

Clojureでスクレイピングしてみる

Clojureの勉強会に参加するので、勉強がてら参加者のtwitterのURL一覧を取得するスクリプトを書いてみた。 ([@2012/4/20 14:40] lein run のようにシェルから実行出来るように書き換えました) まず、Leiningenでプロジェクトを作成する。 lein new hoge cd h…

Delphiでグリッドに列を挿入する

環境はDelphi 6。 グリッドはとりあえずTStringGridを使う。 プログラム中でグリッドに列を挿入したいとき、 procedure InsertCol(G: TStringGrid; c: Integer); var i, j: Integer; begin G.ColCount := G.ColCount + 1; for i := G.ColCount - 1 downto c …

sxpathが分かりにくかった

sxpathが分かりにくかったのでメモ。 使い方 まず、sxpathは関数を返す gosh> (sxpath '()) #<closure (sxpath loop)> ので使うときはこんな感じになる。(以下でshtmlはSHTMLデータとする) (use sxml.sxpath) ((sxpath '(html head title)) shtml) クエリ 上で'(html head title)と</closure>…

継続を理解するために見たページ達

メモ的に列挙。ありがとうございます。 継続の概念 → http://practical-scheme.net/docs/cont-j.html 継続渡し形式 → http://practical-scheme.net/docs/cont-j.html、http://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3A%E4%BD%BF%E3%81%84%E3%81%9F%…

Project EulerをSchemeで(21-25)

今回は問21から問25の5問。処理系はGauche。 そういえば25問解いたのは全体の18%しか居ないらしい… まずはユーティリティ関数とか。factorizeは前に定義したのとちょっと変えてたり。 (use srfi-1) ;; Sieve of Eratosthenes ; (primes 10) => (2 3 5 7) (de…

Gaucheでtraceするまで

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

Gaucheをemacsで書く際のインデント設定->gauche-mode.el

※ メモ的エントリです。 let1を使うとインデント崩れるなー。letでいいやー。 というプログラマとしてあるまじき状態だったのですが、ココの内容をそのまま.emacsにコピペして解決しました。どうやら素のScheme-modeでは特殊形式や構文にあんまり対応してな…

Project EulerをSchemeで(16-20)

今回は問16から問20の5問。処理系はGauche。 15問まとめて書いたのはちょっと長すぎたと思います。 まずはユーティリティ関数とか。前回でも使いました。 (use srfi-1) ; (integer->list 12345) => (1 2 3 4 5) (define (integer->list i) (letrec ((i->rl (…

SchemeでProject Euler(1-15 )

Rubyを勉強しようと思っていたらいつの間にかSchemeを勉強していた(ryというわけでProject Eulerに挑戦しています。 といってもSchemeはやったことないので、入門としてもうひとつの Scheme 入門にお世話になりました。 また、Scheme的な書き方も分からない…

「全裸で学ぶMVC事始め」をruby + Sinatraでやってみた

勉強のため、ゆーすけべーさんの「全裸で学ぶMVC事始め」をruby + Sinatraで書いてみました。 MVCとは何か、どのような処理をするのかについては元エントリで分かりやすく解説されているのでそちらを参照してください。(なぜ全裸なのかも) つくるもの = zenr…

さくらのVPSを借りたらとりあえずやっておくべき設定はこれでいいのかしら

「さくらのVPSを借りたらとりあえずやっておくべき設定」みたいなタイトルのブログをいくつか読んだけど 最低限sshは鍵認証にしてiptablesをちょっといじっておけ、という感じみたい。 ここにも一応手順を書いておく(メモ程度だけど)。 rootのパスワード変更…

Gaucheの環境構築メモ

SICPが読みたくなってもうひとつの Scheme 入門でSchemeをちょっと勉強してたんですが、「もうすぐ無職の穀潰しがそんな余裕ぶっこいてていいの…?」とか弟に言われたのでちょっと棚上げ中。 一応、環境構築のメモだけ残しておく。 ちなみにOS X Lion。 Gauc…

MacのFinderで隠しファイル表示

ちょっと必要なことがあったので。 Lionでもokです。 ターミナルで行います。まず、隠しファイルを表示するとき。 $ defaults write com.apple.finder AppleShowAllFiles TRUE $ killall Finder こちらは非表示に戻すとき。 $ defaults write com.apple.find…

Ext JS 4でのクラス定義

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

DelphiでMap関数ぽいもの

日曜なのに出勤だったので、ついカッとなってやった ※ map関数は、引数に関数と配列*1を取って、配列のそれぞれに対して与えられた関数を適用させる関数のこと 引数に関数を渡すため、あらかじめ手続き型を宣言しておく(参考: Delphiでコールバック - 飲む、…

Ext JS 4 の Ext.Ajax.request で同期通信する

最近、業務でExt JSを使ってまして。 サーバとはExt.Ajax.requestを使って非同期に通信してるのだけど、同期でしたいときもあるわけです。 Ext.Ajax.requestのオプションで指定できるかと思ったけど、APIドキュメントでは見つからず。 さらにフォーラムで開…

Delphiでコールバック

※ 環境はDelphi 6JavaScriptを触ってると、Delphiでもコールバックが使いたくなってきた。 調べてみると、わりと簡単にできるようだ。 コールバック(英: Callback)とは、プログラミングにおいて、他のコードの引数として渡されるサブルーチンである。 コー…

Node.jsでHello worldするまで

Mac OS X 10.7 Lionでヤってます。 Homebrewのインストール 下のコマンドでインストールする。 ruby -e "$(curl -fsSL https://gist.github.com/raw/323731/install_homebrew.rb)"「Press enter to continue」を表示されるのでエンターキーをッターン!!する。終…

const部に関数を宣言する

Stack Overflow内のConst function in Delphiを簡単に訳してまとめてみた。 質問は、 const function1: function(const S: String): String = SomeVariable1; は何をしていて、何のために書かれているのか。というもの。 何をしているのか 普通、定数は cons…

Delphiでiniファイルを扱う

iniファイルの書き方 まず、iniファイルは下のように記述する [<セクション名>] <キー名>=<値> <キー名>=<値> [<セクション名>] <キー名>=<値> ;<コメント> セクション名は行頭から記述し、[と、]で囲む。 キー名と値は=(イコール)でつな…

Delphiでコンポーネントを配列にまとめて扱う

複数のコンポーネントが同じタイミングで同じような処理をするとき、 それらのコンポーネントをまとめて扱えたほうが便利。 例えば type TForm1 = class(TForm) Adrs1: TEdit; Adrs2: TEdit; Adrs3: TEdit; Adrs4: TEdit; Adrs5: TEdit; private { Private …