Contents Introduction and Scope Why Use Lisp with Win32? A (Very) Brief Overview of a Win32 Program's Life Windows Character Systems and Lisp FLI - The Foreign Language Interface Translating C Header Files to Lisp FLI Data Types FLI Data Structures FLI Functions Callbacks from Windows to Lisp Starting the Program The Lisp REPL and Win32 Development Making Direct Win32 Calls from CAPI Interfacing t
Excel に書かれたテーブル仕様書から clsql:def-view-class でテーブルクラスを作り、clsql-sys:create-view-from-class で Postgresql 上にテーブルを作成しました。 Excel から clsql:def-view-class 定義を作るのにはもちろん cl-win32ole を使いました。 最初は Excel のセルを1つずつ見ていかないとだめかな、めんどうだなぁ、と思っていたのですが。 値の入っているセルの範囲を取得できる UsedRange という便利なメソッドを見つけました。 これで、Excel シート上のデータを一括で Lisp のリストとして取得できます。 あとは、Lisp でのリスト操作なので楽々でした♪ UsedRange とっても便利です。 (eval-when (:compile-toplevel :load
可変個の集合から、直積の集合を作る - チキン煮込みチーズミックス4辛 Re: 3つ以上の集合の直積を求めるプログラム - ちなみに 3つ以上の集合の直積を求めるプログラム - ようこそ\(^o^)/ゲストさん 3つ以上の集合の直積を求めるプログラム - None is None is None 3つ以上の集合の直積を求めるプログラム その2 - None is None is None 昨夜書いたバージョンは、無限シーケンスの直積を扱えません。 例えば、 => (product (iterate inc 0) (iterate inc 0)) ((0 0) (0 1) (0 2) (0 3) (0 4) (0 5) (0 6) (0 7) (0 8) (0 9) (0 10) (0 11) (0 12) (0 13) (0 14) (0 15) (0 16) (0 17) (0 18)
を最初はRubyで書き始めたのだが、想像してたよりも面倒なことになりそうだった(mapとかinjectでできる?再帰が必要?)。 そんなとき、研究室の先輩にPythonを勧められたときに教えてもらった、リストの内包表記のことをふと思い出したわけである。 自分はPython使いではないので手間取るかと思ったが、かなりあっさりできてしまった。 せっかくだから(?)、最近リリースしたばかりらしいPython 3.0で動くように書き直してみた。 from functools import reduce # 直積を求める関数 def product(lists): return reduce( lambda prod, list: [x + [y] for x in prod for y in list], lists, [[]]) alphabets = ['A', 'B', 'C'] numbe
;; Allegro CL付属のOLEパッケージをロード (require :ole) ;; WScript.Shellのクライアントインスタンスを作成 (defvar *obj* (ole:ask-for-autotool "WScript.Shell" ole:clsctx_inproc_server)) ;; メソッド呼び出し ;; (ole:auto-method <obj> <method-name-string-or-symbol> &rest <params>) (ole:auto-method *obj* :popup "hogehoge!") ;; すると、「hogehoge!」というポップアップウィンドウが出てくる。 JScriptやVBScriptと同じように呼び出せた。Allegro CL 8.1のsample08に載っている、Excelラッパーの例を参考にした。
プログラミングの存在価値は処理の自動化です。任意の集合に対して処理を繰り返しその結果を返す、それがプログラムです。つまり集合に対して処理を繰り返す能力が、プログラムの価値を決定付けるのです1。 「手続き型言語」ではループが処理の繰り返しを実現するための重要な手法の一つです。しかしループは、一時変数を用意してプログラマがループの進行を管理しなければならない、という欠点があります。そしてその管理ミスがバグとなります。 「関数型言語」では再帰が処理の繰り返しを実現するための重要な手法の一つです。再帰では再帰の進行はその構造に基づいて自動的になされるので、プログラマがそれを管理する必要はありません。しかしその一方で、処理が多段階に渡る立体的なものとなるので、その動作の理解が平面的なループ処理に比べて難しいという欠点があります。習得には慣れが必要です。 Rubyは、手続き型言語と関数型言語の両方の側
配列が次のように与えられているときに, a = %w(a b c d e f g h i j) b = %w(1 2 3 4 5 6 7 8 9 0) 各要素の総当りでこのような配列を作りたい場合, ["a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "a0", "b1", "b2", "b3", "b4", "b5", "b6", "b7", "b8", "b9", "b0", "c1", "c2", "c3", "c4", "c5", "c6", "c7", "c8", "c9", "c0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d8", "d9", "d0", "e1", "e2", "e3", "e4", "e5", "e6", "e7", "e8", "e9", "e0",
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く