2012-08-01から1ヶ月間の記事一覧

数値の配列の総和を求める

配列の型(byte, short, int, long, float, double)ごとに一つ一つメソッド作るの面倒だし generics 使って何とかならんもんかと思ってるんだけど、何か上手い方法ないもんかのぅ ? ググってみたけどわかんね。2012/08/31 追記 : やはり generics 使うと演算…

ウンコード・マニア

ウンコード・マニア さまざまな言語のいわゆる「ウンコード」(ウンコのような酷いソースコード)を集めているサイト。皆さんはこういうソースコードは書かないように !

Struts と MySQL による Web アプリケーション(その 2)

View の作成 今回は新たに検索用の画面を作ります。名前は search.jsp としてください。 <%@ page contentType="text/html; charset=utf-8" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <html:html> <head> <title>顧客マスタ参照</title> <link rel="stylesheet" href="search.css" type="text/css"> </head> </html:html>

関数を引数にとって関数を返す関数

「C 言語がポインタで躓くなら、関数型言語の躓きは『関数を引数にとって関数を返す関数』ではないか」と Twitter でつぶやいていた人がいたのでふと考えてみたのですが map :: (a -> b) -> [a] -> [b] なので f :: a -> b が与えられると map f :: [a] -> […

Struts と MySQL による Web アプリケーション(その 1)

今回は、前回のような一覧表を単に表示させるものではなく、実際に UI を用意してもう少しアプリケーションらしいものを作ってみようと思います。本記事では、これまでに作ったソース群をかなり流用しますので、まずそれを用意します。新たに CustomerSearch…

配列を集合に見立ててべき集合を生成する(Ruby 版・改)

set は Array クラスのオブジェクト(= 配列)。 powerset = (0..set.size).flat_map { |i| set.combination(i).to_a } いただいたコメントより引用。上手い、上手過ぎる。

フレームワークを使って Web アプリケーションを再構築しよう(その 2)

Commons DBCP の利用 Web アプリケーションで DataSource を取得する際、context.xml への記述ではなくて Commons DBCP を利用する方法もあります。実務上は context.xml を使うのが一般的らしいですが、こういうやり方もあるということを知っておくと何かと…

フレームワークを使って Web アプリケーションを再構築しよう(その 1)

前回 Servlet と JSP で Web アプリケーションを作りましたが、今回はそれを Struts を利用して書き変える作業をします。 Model の修正 Customer.java を以下のように修正します。 package jp.mydns.akanekodou.model; public class Customer { private Stri…

onfocus, onblur が動作しない

function clear(elements) { if(elements.value == elements.defaultValue) { elements.value = ""; } } function init(elements) { if(elements.value == "") { elements.value = elements.defaultValue; } } ってやって textarea 要素に <textarea cols="5" rows="30" onfocus="clear(this)" onblur="init(this)">ここに入力</texta</textarea>…

Servlet と JSP による Web アプリケーション(その 4)

さて、間に小ネタを挟んでしまいましたがそろそろ本題を進めましょう。 Controller を作ろう(その 1) package jp.mydns.akanekodou; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import ja…

Haskell におけるカリー化

前に Python でカリー化の話をしましたが、実は Haskell だと話がもっと単純になります。 f :: a -> b -> c という関数を定義したとしましょう。このとき型 a の変数 x に対して f x :: b -> c になっています。これはまさにカリー化の構図そのものです。

配列を集合に見立ててべき集合を生成する(Haskell 版)

「プログラミング Haskell」に subs という関数が書いてあった。 subs :: [a] -> [[a]] subs [] = [[]] subs (x : xs) = (subs xs) ++ map (x :) (subs xs) Haskell は神の言語か…? ちなみに一説によれば一行でも定義できるらしいのだが…。追記 : 可読性やメ…

配列を集合に見立ててべき集合を生成する(Ruby 版)

配列(Array クラスのインスタンス) set があるとして powerset = Array.new (0..2 ** set.size - 1).each do |n| subset = Array.new set.each do |i| subset << i if n & 1 == 1 n >>= 1 end powerset << subset end やっぱり Ruby いいですね ! (ステマ)

配列を集合に見立ててべき集合を生成する

// List を集合に見立ててべき集合を生成する static <T> List<List<T>> powerset(List<T> set) { List<List<T>> powerset = new ArrayList<List<T>>(); for(int i = 0; i < Math.pow(2, set.size()); i++) { List<T> subset = new ArrayList<T>(); int n = i; for(T x : set) { if((n & 1) == 1)</t></t></list<t></list<t></t></list<t></t>…