Shammer's Philosophy

My private adversaria

2013-02-01から1ヶ月間の記事一覧

文字コードをまとめて変換するスクリプト

仕事でとあるログを確認することがあるのだが、そのログがなぜかUTF-16LEで書かれている。UTF-16LEだと、cygwinのgrepで引っかかってくれないので、iconv を使って1つずつUTF-8に変換していたが、数が多いとやってられない。そこで過去(2008/07/31)に作成し…

LispでList分割

divideとかsplitとかseparateとか、思い付いたそれっぽいキーワードで探してみたがなさそう。ありそうだけれども。Lisp で乱数リストを作る - Shammerismで書いたように、アルゴリズムのおさらいをしようとしているので、このリストの分割ができる関数が重要…

Lispではcontinueを使えない?

continueとは ループ処理の途中で、処理を一巡送りするキーワードでContinueというのがある。例えば、Javaでは以下のように使用する。 public void do() for( int i = 0 ; i < 10 ; i++ ){ if( i == 5 ){ continue; } System.out.println(i); } } こう書くと…

Lispでバブルソート

Lisp で乱数リストを作る - Shammerismの続き第一段。まずはバブルソートから。一番最初の値と次の値を比較して、大きい方を後ろにひたすらずらしていき、最後まで行けば自動的に一番大きいものは最後になる、というやり方。 (defun bubble-sort (l) (labels…

要素から最大/最小のものを取得したい

Lisp には、渡されたパラメータの中から最大のものを返すmaxと最小のものを返す min という関数がある。 ? (max 10 11 12 13 14 15) 15 ? (min 10 11 12 13 14 15) 10 ? しかし、これは引数がlistになると動作しない。 ? (max '(10 11 12 13 14 15)) > Error…

Windows上のEmacsでtuaregを使う

大した作業ではないけれども、忘れそうなのでメモ。今日の時点で最新のtuaregは2.0.6だった。ダウンロードはここから。 ダウンロードしたファイルを解凍。tuareg-2.0.6を入手 tuareg-2.0.6を%USER_HOME%/.emacs.d/lispへコピー %USER_HOME%/.emacs.d/init.el…

自作 concat - Ver20130205

16進数を10進数に戻す関数・改 - Shammerismで作成したtypelistpを使用して、dolist 排除計画その2 - Shammerismのconcatを書き換える。自作の関数とコンディションを利用しているから、それらも合わせて記載。 (defun typelistp (l type) (if (null l) t (…

16進数を10進数に戻す関数-20130202

16進数を10進数に戻す関数・改 - Shammerismの内容で終わりにしようかと思ったが、使用すべき文字はわかっているしdolistを止めたいとか、改善したいと思ったので書き換えた。 (defun hex2decimal (x) (labels ((is-hexable (l) (let ((available-chars '(#\…