プログラミング

(1 2 3 4 5)が与えられたとき( (1 2) (2 3) (3 4) (4 5) )を返すような関数の定義

リスト処理の問題。 1. (1 2 3 4 5) が与えられたとき ( (1 2)(2 3)(3 4)(4 5) ) を返すような関数を定義せよ 2. 1 の関数を拡張して、(0 1 2 3 4 5 6 7 8 9) と 2 が与えられたとき ( (0 1)(1 2)(2 3)(3 4)(4 5)(5 6)(6 7)(7 8)(8 9) ) を、(0 1 2 3 4 5 6 …

Windows PowerShellでSendKeys+マウスクリック

Windows PowerShell初めて使ってみたのでメモ。 やりたかったのは他のアプリケーションに対するキー操作とマウスによるクリック。 で、ポイントは 他アプリケーションに対するマウス操作はWin32APIを使う。 Windows PowerShell ではC#がインラインコンパイル…

”漢数字からアラビア数字”をschemeで3

artonさんのトコを見たら で、こんな感じになった。 KINDEX = "十一二三四五六七八九" ARABIC = [ 10, 1, 2, 3, 4, 5, 6, 7, 8, 9 ] def kj_to_arabic(s) n = 0 s.each_char do |c| if n < 10 && n > 0 n *= 10 else n += ARABIC[KINDEX.index(c)] end end n…

"漢数字からアラビア数字"をschemeで2

なんとなく億まで対応するようにしてみた。 (define (kj_to_ar kj-string) (define kj-base '((#\十 10) (#\百 100) (#\千 1000) (#\万 10000) (#\億 100000000))) (define kj-number '((#\零 0) (#\一 1) (#\二 2) (#\三 3) (#\四 4) (#\五 5) (#\六 6) (#\…

"漢数字からアラビア数字"をschemeで

やりたいのは単純で、一〜五十くらいまでで、十一とか三十一とかの表記となる。これを1〜50、11とか31とかに直す。 L'eclat des jours(2010-12-09) なんとなくGaucheでチャレンジ。 (define (kj_to_ar kj-string) (define kj-number '((#\十 10) (#\一 1) (#…

ソースコード量の比較 schemeとPHPの続き

一昨日のソースコード量の比較 schemeとPHPの記事にpodhmoさんからコメントを頂いたのですが、ちゃんと理解できなかったので、cuteとかcutをlambdaに置き換えてみる。 元のソース。 (let1 ht (make-hash-table) (for-each (cute hash-table-update! ht<> (la…

ソースコード量の比較 schemeとPHP

各言語共通ロジック条件 同じ年月は同じグループとしてカウントして数を求める 最新の年月を降順でソートする 無理やり1行にまとめず、ある程度の可読性は保つようにする 宣言部分、実装メソッドの定義部分などはカウントせず除外する //---(logic)----で囲…

Algorithm - 0と1を次々と返す簡単なお仕事 - php版

Algorithm - 0と1を次々と返す簡単なお仕事 なんとなくphpでも。 あんまりおもしろくないかな。

Algorithm - 0と1を次々と返す簡単なお仕事 - scheme版

Algorithm - 0と1を次々と返す簡単なお仕事にscheme版がなかったので、やってみた。 (define (make-flipflop p) (lambda () (set! p (not p)) p)) (define flfp (make-flipflop #f)) 実行。 gosh> (define (make-flipflop p) (lambda () (set! p (not p)) p)…

高階関数クイズやってみた

高階関数クイズ - Oh, you `re no (fun _ → more)をやってみた。Ocaml使ったことないんでインストールして試してみる。 # let twice f x = f (f x);; val twice : ('a -> 'a) -> 'a -> 'a = <fun> # let add1 x = x + 1;; val add1 : int -> int = <fun> # add1 0;; - </fun></fun>…