[[SCALAの記事一覧]]

&topicpath;
*はじめに [#c3d68e63]
このページは関数脳を作るべく、関数言語を題材にした99個の問題を解くのではなく、
解いてある回答を見て学ぶために作ったページです。

再帰的に解いてあると、関数言語だなーという気分になるのは、じぶんだけでしょうか?

まだ、全問といていませんが、極力1日1問のペースで解いていこうとおもっています。

*目次 [#b66f8a7d]
#contents

 こんにちは、みなさんお元気ですか。
 このページはプログラミング言語SCALAについてまとめたページです。
 Androidアプリケーションの開発やクラウド開発、
 そして企業のリソースをWebAPI化するなどの
 プログラミングには信頼性や資源の多さからJavaが有効だとおもいますが、
 SCALAはそのJavaアプリケーションをさらに効率よく開発する可能性を秘めています。


*Scalaとは [#g9395f0f]
 Scalaは、JVM上で動作するオブジェクト指向+関数型言語で、
 Javaとほぼ完全な相互利用が可能な言語です。
 これまでの言語の集大成に近い言語です。
 そのため、各言語の優れた概念を取り入れているわけです。
 軽い気持ちで学ぶと、あちこちの言語の概念の基本を抑えたほうが近道なこともあり、
 色々な言語の入門書をわたり歩くはめになります。
 作者であるMartin Odersky教授はJavac開発の貢献者であるとともに、
 Java5 Genericsの仕様策定にも参加しています。
 というわけでSCALAはJava言語と親和性の高い関数型言語です。
 コンパイルするとJavaのクラスファイルになるんですよ。
 Javaのライブラリは膨大で他の言語に比べて日本語の処理方法がしっかりしています。
 そしてコードが簡潔に書けるので生産性が高いといわれています。
 たとえばBeanクラスを記述する場合、例は下記に記しますが、3分の1の
 コーディングですみます。


**その他の特徴 [#i82a745f]
-関数を生成して返す関数を定義できる
-配列のパターンマッチング
-XMLを簡単に扱える
-多重継承ができるので、メソッドを部品のように扱える
JavaにはできないことができるのにJavaと親和性が高いのです。

**練習問題 S-99 Ninety Nine Scala Problems [#zc5b14a2]
 何らかの練習問題をこなすことで力がつくとおもいます。自分で解くことも大切ですが模範回答から学ぶことも大切です。
 このページは下記の
 S-99 Ninety Nine Scala Problems
http://aperiodic.net/phil/scala/s-99/
 の回答をつかって学習していくページです。
 模範回答をみてえられる知識は実践向きの知識とも言えるかとおもいます。
 パズルゲームを解いていくような気分で1日1問を解説していければとおもっています。


*対象者 [#a4017fbd]
 SCALAのインストールは完了し、HelloWorldを実行し終えた程度の読者を想定
 SCALAをやるのは全くのはじめてという方向け
 SCALAはコンパイルすると、JAVA言語のクラスを生成する関数型言語です。
 型推論を行ってくれるので、マスターすれば生産性が向上します。

 
*趣旨 [#k9b945e2]
 有名な練習問題99問が回答付きで英語ながらも存在しているので、
 回答をみながら、ポイントをまとめていこうかという趣旨です。
 問題自体はリストを処理するAPIを知っている人向けなのですが、
 問題が出てくる毎にそのメソッドを紹介していきます。

*参考:リストを操作するAPI [#dc8ce051]
https://www.scala-lang.org/docu/files/api/scala/List.html

***ローカルにAPI資料をもってきたい場合 [#t5cff7df]
sbazというインストーラからダウンロードします。
名前の由来は「Scala Bazaars」です。
DOSプロンプトで操作します。
rem はDOSのコメント行を意味しています。
 rem sbazのあるディレクトリにカレントディレクトリを移します。
 cd C:\scala\bin
 rem sbazを使えるようにします。
 sbaz installed
 rem 一覧を取得します。
 sbaz available
 rem ドキュメントをダウンロードします。
 sbaz install scala-devel-docs

下記のフォルダにAPI資料をダウンロードできます。
 C:\scala\doc\scala-devel-docs\api

*1問 [#c993a2a7]

 1問目は、回答を自分の環境で実行させること自体が学びが大きいです。
**手順 [#l78cdce7]
-回答をP01.scalaというファイル名で保存します。
***インタプリタ形式で確認するには、 [#scb13ea3]
scalaでインタプリタ形式で
:load .\P01.scala
と入力すると
読み込んでくれます。
***確認方法は [#xa5e1ff8]
P01.last(List(1,2,3,4,5))
です。

***最後の要素を取得する [#ffe2eca1]
 .last

*2問 [#n5ca2709]

2問とは関係ないのだが、今度はEclipseでSCALAを実行させてみたいとおもう。
そのためには下記のプラグインをインストールすることが必要だ。
Scala IDE for Eclipse
http://www.scala-lang.org/node/94

**Scala Eclipse Pluginの導入 [#fe8b9747]
 Eclipse開いて、「Help -> Install New Software... -> 
 Workwithフォルダに
 Available Software -> Add Site..」でLocationに「http://www.scala-lang.org/scala-eclipse-plugin」と入れる
 あとは、直感的にわかるので省略


**確認用メイン [#u8fc4086]
回答をエクリプスから実行するにはメインメソッドが必要ですので、
下記のような実行用のメソッドを用意するといいでしょう。
 object HelloScala
 {
 	def main(args:Array[String])
 	{ 
 		println("Hello Scala!")
 		println("P03")
 		println(P03.nth(2,List(1,2,3,4)))
 		System.exit(0)
 	}
 }

**本題の2問目 [#ne66d693]
  // But pattern matching also makes it easy.
  def penultimate[T](l: List[T]): T = l match {
    case e :: _ :: Nil => e
    case _ :: tail     => penultimate(tail)
    case _             => throw new NoSuchElementException
  }

  1問目と比較してみる
  def last[T](l: List[T]): T = l match {
    case e :: Nil  => e
    case _ :: tail => last(tail)
    case _         => throw new NoSuchElementException
  }

***scalaは配列要素をパターンマッチできるようだ。 [#p80b5dac]

   2問目の最後から2つ目にマッチ
    case e :: _ :: Nil => e
   1問目の最後にマッチ
    case e :: Nil  => e
  
 ::は配列の要素間の区切り文字である。

***配列の長さを取得する [#h772481a]
.length
***右からn個の要素を取得する [#n1cb2746]
.takeRight(2)
()はapplyメソッドと同等らしいです。
***先頭を取得する [#z25fced1]
.head
 
*3問目 [#k49dbbd9]
  回答に
 (n, l) match {
   
 }
 という構文が使用されている
 第一パラメータっぽい変数nがmatch内で使えるようになっている

***n番目の要素を取得する [#gb93f5e2]
配列変数(n)


*4問目 [#c6f8d542]
***def内にdefを入れ子にできる [#y1cc836a]
例
 def foo = {
   def bar = {
 
   }
   bar
 }
***先頭以外の要素 [#o852f411]
.tail

*5問目 [#ma5248d6]
***配列を逆にする [#r0ba9d89]
.reverse
**配列を連結する演算子::と::: [#m7f4bb61]
配列を連結する演算子には::と:::があって、知らないと困る
***::の例 [#g9697964]
 List(1,2,3) :: List(4,5,6)
結果
 2番目の配列の先頭に格納される
 List(List(1,2,3),4,5,6)
***:::の例 [#q33c0004]
 List(1,2,3) ::: List(4,5,6)
結果
 List(1,2,3,4,5,6)

***配列の連結演算子:: [#s5798690]

***match内での先頭とそれ以外の分割(効率はn^2なので小さい配列向き) [#y9c37311]
 case h :: tail => reverse(tail) ::: List(h)

***Nil=List() と List(1,2)=1::2::Nil [#r3204da6]
 配列の書き方で
 1 :: 2
 と書くとエラーになるが
 1 :: 2 :: Nil
 と書くと
 List(1,2)
 として認識される

**配列の要素をまずは、初期値を処理し、次からは次の要素と処理結果とを処理させる [#b244a202]
 ややこしいが、その分応用できる箇所をすっきりと記述できる。
 .foldLeft
 左からぱたぱた倒れていくような感じの関数で初期値と、
 名前なしの関数を与えるようなイメージ
-例

 (List(2,3,4).foldLeft (1)) {(x,y) => x+y}

-結果
 10
 これは1から4までの数字を合計するというもの
 まず、1と2が、xとyに格納されて計算結果が自動的に左側のxに格納される
 次にxと3が計算され、xに格納
 どうようにxと4が計算され結果が出力されるという感じだ。
 xとかyとかがなくても、次の書式で対応可能だ。
 (List(2,3,4) foldLeft 1) {_+_}

***foldLeft・foldRightは別名があり、それぞれ「/:」「:\」とも書ける。 [#j35ee226]
 foldLeft は /: とも書けるので次のようにより簡潔に書ける
 (1 /: List(2,3,4))(_+_)
 初期値が先頭にきている感じだ。
 ()を閉じ終えてからくる()が、処理。

***回答を理解できるようになったので解説してみる [#mddb4ff8]
 というわけで、次の処理内容をみてみると以下のことが理解できる
 def reverse[T](l: List[T]): List[T] = l.foldLeft(List[T]())((r, h) => h :: r)
 List[T]()は初期値であり、空の配列である。
 最初は空の要素と左の要素が処理され最初の要素がrに格納される
 次の要素はhに格納され最初の要素はrなので、(2番目の要素,最初の要素)
 が格納される。

**応用:Beanを定義する。 [#hf8ee7ab]
ここまでは、配列の中身が数値とかだったので、もう少し込み入った情報を扱いたい場合もあるかとおもいますので、Beanの扱いについて説明いたします。

その前にオーバライトの書き方を紹介します。
***Javaメソッドのオーバライド [#d7458651]
defの前にoverrideをつけます。
 override def toString="(name:"+name+ " value:"+value+")"

**case classを使った定義方法 [#jfa5c6e4]
-例
 case class FieldValue(name:String , value:String ) {
    override def toString = "(name:"+name+ " value:"+value+")" 
 }
たったの3行です。おそらく1行でもいけるでしょう。

**通常のBeanの設定方法 [#hae76bdb]
***Beanの定義 [#e770c35c]
 class FieldValue(_name : String , _value : String) {
	val name = _name
	val value = _value
	override def toString="(name:"+name+ " value:"+value+")" 
 }
***コンストラクションを増やしたい場合 [#z7935a70]
例
 class FieldValue(_name : String , _value : String) {
	val name = _name
	val value = _value
	override def toString="(name:"+name+ " value:"+value+")" 
        def this(_name:String) = this(_name,null)
 }
***Beanインスタンスの作成 [#ta18a7e3]
 val field1 = new FieldValue("key1","data1")
 val field2 = new FieldValue("key2","data2")
 val field3 = new FieldValue("key2","data2")
 val field4 = new FieldValue("key2","data2")
***Beanの配列 [#eea500d5]
List(field1,field2,field3,field4)

*問6 [#jb8a4b39]
答えは簡単に
 def isPalindrome[T](l: List[T]): Boolean = l == l.reverse
だった。

**scalaのfor文 [#cad712c0]
配列以外でループさせたい場合につかうかもしれない
        for (x <- (0 to 10)){
            println(x)
       }
***takeWhile [#b6a12347]
ちなみにループ中にループを抜けたい場合はtakeWhileをつかう
 var continue = true
 for (x <- (1 to 20).takeWhile(e => continue)) {
   println(x)
   continue = x < 5
 }

 var continue = true
 (1 to 20).takeWhile(e => continue).foreach { x =>
   println(x)
   continue = x < 5
 }

-ただし、上記の例でバージョン2.7.7では意図した結果になるのに対して、2.8Betaだとcontinueのスコープがずれてしまい、別々の変数とみなされてしまいます。

とりあえず、バクかなとおもって本家にバグ報告してみたところ下記の回答がかえってきました。

**SCALAの本家から回答が帰ってきました。 [#v9d8ed93]
 this is the result of an intentional change. Range is strict now.
 
 one way to get lazy behavior would be to insert toStream: "(1 to
 20).toStream.takeWhile". in general, though, mixing for comprehensions and
 side-effects is discouraged.

つまり下記のように(1 to 20)の部分を(1 to 20).toStreamとすればよいようです。
 var continue = true
 for (x <- (1 to 20).toStream.takeWhile(e => continue)) {
   println(x)
   continue = x < 5
 }

**配列の連結 [#lb9151aa]
配列の連結は先頭にしかできないので
どうしても末尾にしたい場合は、
reverseをつかって先頭に追加してから、
またreverseでもどしたりする。   

**文字列格納用配列の宣言 [#m0b9dc5b]
 var result :List[String] = List()
が正解で
 var result = List() ......NG Error
だと、空配列しか受け付けない配列として宣言したことになるようです。

***配列の追加 [#of21c1dc]
 配列が先頭にしか追加できない
 result = "a" :: result
 だとエラーにならないけど 
 result = result :: "a"
 だとエラーになるってこと

***戻り値のあるメソッドの書き方注意点 [#mc57b072]
 メソッドの戻り値がある場合は、メソッドの中身を書く際に={中身}とすること
 そうしないと
 illegal start of declaration
 というエラーがかえってきます。

***キャストの仕方 [#h4071f02]
クラスの型を正しく指定しないといけませんので指定します。
BufferedSourceでキャストする方法
.asInstanceOf[BufferedSource].

***動的変数を持つ関数の作り方 [#a10ec873]
 動的変数は try catch の中のプログラムをブロックとして、
 あとで追加できるようにする仕組みで、ファイルを閉じるなどの
 必ず行うような処理を簡潔に書くことができます。
 def 動的関数名(引数)(動的変数 => Unit){
 
 }
***動的変数を持つ関数の使い方 [#ib5c9174]
  動的関数名(引数){(動的変数 ) =>
     処理内容
  }


**文字列を配列に変換する [#nc5cd2c6]
ファイルから読み込んだ文字列の場合、いったん配列にしてやらないといけない
だから文字列を配列に変換するメソッドをつくってみました。
    
    def to_a(text:String):List[String] ={
        var result :List[String] = List()
        var len = text.length;
        for (x <- (0 to text.length -1)){
            result = text.substring(len-x-1,len-x) :: result
       }            
       result
    }

別解:JavaのtoCharArrayをつかう例。これだけでもいいけどArray型になってしまうため、型変換メソッドも用意しました。
    //ArrayをList配列に変換します。
    def toListoReverse(array:Array[Char]):List[Char]={
    	var result :List[Char] = List()
    	array.foreach{
    		x=>result = x :: result
    	}
    	result
    }

    //文字列を配列に変換します。
    def toList(string:String):List[Char]={
    	toListoReverse(string.toCharArray).reverse
    }




**ファイルの読み込みを動的変数で簡潔にする [#s98a5e3d]
 ファイルの読み込みはclose処理をいれなきゃいけないのですが、
 動的関数をつかえば、簡潔に表現できます。

    import scala.io.Source
    import scala.io.BufferedSource
    import java.io._
    
    // ファイルの読み込みを動的変数で簡潔にする
    def read(path: String)(block: Source => Unit) ={
        var fis :FileInputStream =null
        var sou :Source =null
        
        try {
          fis= new FileInputStream(path)
          sou= Source.fromInputStream(fis)
          block(sou)
        }finally{
          sou.asInstanceOf[BufferedSource].close
          fis.close
        }
    }

    //readメソッドの使い方はこんな感じ  
    read("sample.txt"){(in:Source) => 
        for(line <- in.getLines){
            println(line.stripLineEnd)
        }
    }
ファイルをcloseする箇所が省けているのがわかります。

***応用:ファイルの内容を一気に配列化するメソッド [#re0a257f]
    //ファイルをすべて読み配列で返します。
    def readAll(path: String):List[String]={
        var result :List[String] = List()
        read(path){(in:Source) => 
            for(line <- in.getLines){
                result = line.stripLineEnd :: result
            }
        } 
        result.reverse   
    }

    //使い方
    readAll("sample.txt").foreach(println _) 

とってもシンプルになりました。


*問07 [#u51f94f7]
**scala.Anyとは [#sea29c93]
Scala のすべてのクラスの継承元となる基底クラス (Int、Float、Double などの型やその他の数値型) は scala.Any 型です。

**入れ子状態になっている配列の入れ子を解消してフラットな配列にする [#pfa20fee]
flatMapをつかいます。flatMapは基礎的メソッドです。
  def flatten(l: List[Any]): List[Any] = l flatMap {
    case l: List[_] => flatten(l)
    case e => List(e)
  }
-flatmapもmapもArray()で行えば、Arrayをかえしますし、Listで行えばListをかえします。
- => 記号は左側にブロック変数を指定できるので重要です。
- さらにブロック変数はcaseによってリストのパターンごとの処理が可能になっています。

*問08 [#e36ac1fa]
**値が一致する要素を削除する [#v5207dcb]
match処理内のcase処理部分でつかいます。
 tail.dropWhile(_ == e)
普通に式を評価しようとするとvalue dropwhile is not a member of Listとエラーになります。

*問09 [#m0f568a4]
**多重代入 [#r04dde2d]
ScalaもRubyのように多重代入ができるんですねぇ。
 scala> val (aa,bb)=(11,22)
 aa: Int = 11
 bb: Int = 22

***List形式の場合の多重代入 [#tfc30d30]
 scala> var list = List(1,2,3)
 list: List[Int] = List(1, 2, 3)
  
 scala> var List(aa,bb,cc)=list
 aa: Int = 1
 bb: Int = 2
 cc: Int = 3 

***一致するシンボルと、それ以降を分離する。span [#b07ff58f]
spanをつかいます。
-例
 l.span(_ == l.head)

scala> var l = List('a, 'a, 'a, 'a, 'b, 'c, 'c, 'a, 'a, 'd, 'e, 'e, 'e, 'e)
scala> l.span(_ == l.head)
res16: (List[Symbol], List[Symbol]) = (List('a, 'a, 'a, 'a),List('b, 'c, 'c, 'a,
 'a, 'd, 'e, 'e, 'e, 'e))


*問10 [#d9f67211]
前回で定義したメソッドと連携して最小限のメソッド実装で問題を解いていきます
そのためには前回定義したメソッドをimportします。
 import P09.pack

インポートするためには参照元の.scalaファイルがコンパイルされている必要があります。
さもなくば、下記のエラーが出ます。
P09 is not a member of problem

というわけで、
 scalac P09.scala

でコンパイルすればいいんですが、
今後プロジェクトでこの99の問題をコンパイルし続けるとディレクトリ内はソースとクラスファイルでごちゃごちゃになってしまいます。

それを防ぐためには、ソースファイルとクラスファイルの出力先を分けたたほうがいいですし、
そして問題の回答としてできてくる99個のファイルは一つのパッケージにしなきゃつらいですね。

となると、package化の必要があります。と、なると
-フォルダ構成は
 プロジェクト名
   +---src
      +---problem <---パッケージ名
   +---target
      +classes <----出力フォルダ

で、いちいちscalacのオプションを書くのは面倒なのでバッチファイルをつくりました。
拡張子の.scalaは省略してもいいようにしてあります。
--ただし、jarファイルのクラスパスをまとめてコンパイルするにはさらなるクラスパスの追加が必要です。

**バッチファイルでの特定の拡張だけのパスを集める最小限的のサンプル [#r054caaa]
 @echo off
 set CP=.
 set BASE=.
 setlocal ENABLEDELAYEDEXPANSION
 for %%f in (%BASE%\*.jar) do set CP=!CP!;%%f
 echo %CP%
---setlocalはこのバッチファイルだけで有効なことを意味します。
---ENABLEDELAYEDEXPANSIONを指定しないと、for文が並列で評価されてしまい、クラスパスが連結されません。
---forには /R というサブディレクトリも検索対象にするオプションがあるはずですが、なぜか自分の環境(XP)では動作しませんでした。

**クラスパスの指定に偽ワイルドカード [#z3e0e43b]
Java SE 6 では、クラスパスの指定に偽ワイルドカードが使えるようになるようです。
なんで偽かっていうと
---java -cp ./*.jar;./lib/*.jar のように *.jar とか書くとダメ
---java -cp ./*;./lib/* のみ対応


設定箇所はプロジェクトのディレクトリです。
-compile.bat
 REM プロジェクトのディレクトリを設定
 SET PROJECT=C:\scala\problem
 
 SET SRC=%PROJECT%\src
 SET CLASS=%PROJECT%\bin
 scalac -sourcepath %SRC% -classpath %CLASS% -d %CLASS% %SRC%\%1.scala

-実行方法
 compile.bat problem\P09

**ビルドツールの出番 [#j9107d6c]
 でもimportするということは、ファイル同士に依存関係が出てくるということです。
 ということは、 いまは例題を1から順番にやっているだけなので順番にコンパイルしていけばいいのですが、
 業務でつかうとなれば、ビルドツールのANTまたは、MAVENをつかったほうがよさそうです。

**ビルドツールMAVEN [#p35eafcc]
ダウンロード
http://maven.apache.org/download.html

仮に解凍したディレクトリの名称をmavenに変更して下記に設置したとします。
C:\maven

-環境変数を設定します。
-M2_HOME=C:\maven
-M2=%M2_HOME%\bin
-PATH=%PATH%;%M2%

-mavenの環境変数設定の確認
mvn --version


-mvnでscalaをつかうためのおまじない
--参考
---http://codezine.jp/article/detail/4476?p=2
---http://akisute.com/2009/11/maven2scalahello-world.html
参考サイトによればできたプロジェクトにpom.xmlがありますが、プラグインのバージョンを合わせるためこれを修正しなくてはなりませんが、

お決まりの操作なので バッチファイルとrubyでつくったスクリプトを用意しました。
なんで、rubyかって?単に簡潔に書けそうな気がしたからです。


--プロジェクト作成バッチファイル
**mkprj.bat [#wec0a917]
 SET PROJECT=%1
 SET PACKAGE=%2
 SET RUBYSCRIPT=c:\scala\bin\scalaproject.rb
 
 @echo off
 if exist %PROJECT% GOTO PROCESS1
 
 SET CREATE=org.apache.maven.plugins:maven-archetype-plugin:1.0-alpha-7:create
 SET PARAM=        -DarchetypeGroupId=org.scala-tools.archetypes
 SET PARAM=%PARAM% -DarchetypeArtifactId=scala-archetype-simple
 SET PARAM=%PARAM% -DarchetypeVersion=1.2
 SET PARAM=%PARAM% -DremoteRepositories=http://scala-tools.org/repo-releases
 mvn %CREATE% %PARAM% -DgroupId=%PACKAGE% -DartifactId=%PROJECT%
 
 :PROCESS1
 if exist %PROJECT%\pom.xml.bat GOTO PROCESS2
 ruby %RUBYSCRIPT% c:\scala\bin\scalaproject.rb %PROJECT% %PACKAGE% %3
 
 :PROCESS2

--使い方
---したに示したテキストファイル処理Rubyスクリプトがあることが前提のバッチファイルです。
---プロジェクトフォルダがないことが前提です。
 cd プロジェクトの親ディレクトリ
 mkprj プロジェクト名 パッケージ名 合わせたいscalaバージョン

--例
 mkprj problem99 problem 2.7.7


**scalaproject.rb [#qfa58e1d]
 #プロジェクト名を第一引数にとります。
 #パッケージ名を第2引数にとります。
 #バージョンを第3引数にとります。
 puts "argv[0]:"+ARGV[1]
 
 projectname =ARGV[1]
 filename = projectname + "\\pom.xml" 
 
 file = open(filename)
 # 保存用バッファ
 buffer = file.read().split("\n");
 file.close
 
 # バックアップ用ファイルを開く
 bkup = File.open(filename + ".bak" , "w");
 # ファイルから読み込んでバックアップに書き込む
 bkup.write(buffer);
 bkup.close
  
 # ファイルを書き込みモードで開き直す
 file = File.open(filename , "w");
 
 #処理
 
 cnt = 0
 buffer.each {|line|
	cnt = cnt + 1
	#64行目から66行目をカットします。
	if !(64..66).include?(cnt)
	    #以前のバージョン2.7.0を今のバージョンに置き換えます。
	    file.puts line.gsub("2\.7\.0",ARGV[3])
	    #初期値では
		if cnt==94 
          heredoc= <<EOS
	      <!-- このlaunchers要素を新規に作る。idとmainClassは必須。 -->
	      <launchers>
	          <launcher>
	            <id>app</id>
	            <mainClass>PACKAGE.App</mainClass>
	            <!-- 以下、任意要素。 args と jvmArgs を指定できます。 -->
	            <!--
	            <args>
	              <arg>arg1</arg>
	            </args>
	            <jvmArgs>
	              <jvmArg>-Xmx128m</jvmArg>
	              <jvmArg>-Djava.library.path=...</jvmArg>
	            </jvmArgs>
	            -->
	          </launcher>
	      </launchers>
 EOS
         	  file.puts heredoc.gsub("PACKAGE",ARGV[2])
          end
	end
 }
 file.close

**実行 [#c825ff25]
mkprj.bat problem99 problem 2.7.7 はなぜかコンパイルし終わると停止するので2度実行しています。
 mkprj.bat problem99 problem 2.7.7
 mkprj.bat problem99 problem 2.7.7
 cd problem99
 mvn scala:run

**問09をMavenで実行させてみる。 [#i8df2544]
-P09.scala
 package problem
 object P09 {
  def pack[T](l: List[T]): List[List[T]] = {
    if (l.isEmpty) List(List())
    else {
      val (packed, next) = l.span(_ == l.head)
      if (next == Nil) List(packed)
      else packed :: pack(next)
    }
  }
 }

-P10.scala
 package problem
 
 object P10 {
  import problem.P09.pack
  def encode[T](l: List[T]): List[(Int, T)] = pack(l).map(e => (e.length, e.head))
 }

-App.scala 改
 package problem
 /**
  * Hello world!
  *
  */
 object App extends Application {
  println( "Hello World!" )
  import problem.P10._
  println(encode(List('a, 'a, 'a, 'a, 'b, 'c, 'c, 'a, 'a, 'd, 'e, 'e, 'e, 'e)))
 }

**実行 [#tf761882]
 mvn scala:run

 とりあえず、ソースをかけば、コンパイルから実行までやってくれるのがわかった。
さすがに、scalecを直接やるよりは遅い

***クラスファイルの出力先 [#t56c78be]
 プロジェクトフォルダ\target\classes
***インタプリタ形式でscalaを動かしたい場合 [#eccca17d]
 cd プロジェクトフォルダ\target\classes
 scala

*問11 [#y2180116]
**単純な括弧、たとえば、(1,2)の要素を取得する [#nb895eea]
今まで、List型の要素取得方法を学んだ
 scala> List(1,2)(1)
 res12: Int = 2

しかし、同様の操作を上記のListを省いた形式にあてはめようとするとえらーになる。
 scala> (1,2)(1)
 <console>:7: error: scala.Tuple2.apply[Int, Int](1, 2) of type (Int, Int) does not take parameters

***単なる括弧の要素を取得する方法 [#p3f396f6]
 scala> (1,2)._1
 res11: Int = 1

--この単なる括弧の正体はscala.Tuple2である。
 scala> scala.Tuple2.apply[Int, Int](1, 2) == (1,2)
 res16: Boolean = true

引数の型の数だけTupleクラスが用意されていて、APIを見る限り22個までは用意してあるらしい
-22個の例
 scala> (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22)
 res22: (Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int)
     = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22)
正常に解釈される

-23個の例
 scala> (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23)
 <console>:7: error: value Tuple23 is not a member of package scala
       (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23)
宣言されていないのでエラーとなった。

*問12 [#vba60999]
**List.make(2,'a)はList('a,'a) [#v18c1998]

**これまでの問題で定義してきたメソッドをあたかもListのビルトインメソッドのように扱う [#bbf78db3]
 問題文では、decode(List( (4, 'a), (1, 'b), (2, 'c), (2, 'a), (1, 'd), (4, 'e)))
 であったが、これを
-List((4, 'a), (1, 'b), (2, 'c), (2, 'a), (1, 'd), (4, 'e)).decode
 で答えが出るようにするには、
 case class P12[T](val nums : List[(Int, T)]){
 	def decode:List[T] = nums.flatMap(e => List.make(e._1, e._2))
 }
 
 implicit def xxx[T]( num:List[(Int, T)]) = P12(num) 

-対比のため掲載するが、もとの回答ではつぎのようになる
 object P12 {
  def decode[T](l: List[(Int, T)]): List[T] = l.flatMap(e => List.make(e._1, e._2))
 }

-ポイント
--case classでは classで引数をとるようになっており、defの引数が一つ減っている。

*問13 [#jdfa5258]
**spanの結果を多重代入する [#y5b22cf6]
 val (packed, next) = l.span(_ == l.head)

*問14 [#t5c21c38]
**flatMapを使った方法を思いつくかという問題 [#p995fdd9]

#areaedit
*問15 [#v7bc29a2]
**List.make(n, _)をつかって要素を増やした記述 [#q74067a4]

  def drop[T](n: Int, l: List[T]): List[T] = {
    def dropR(c: Int, curList: List[T]): List[T] = (c, curList) match {
      case (_, Nil) => Nil
      case (1, _ :: tail) => dropR(n, tail)
      case (_, e :: tail) => e :: dropR(c - 1, tail)
    }
    dropR(n, l)
  }

回答をみて気がつくのは、defの定義方法である。通常{}でくくるかとおもうが、
いきなり( )表現をつかっている。一つの配列からつくられる高階関数内に処理を書けるからだとおもう。

case文の使い方で気がつくことは、eとtailである、この2つは、どこにも定義や代入の記述がないことをみると、予約されている変数だろう。パターンマッチの書き方も()に応じて用意してあるのだろう。たしか()はTuple2だったはずだ。
#areaedit(end)

#areaedit
*問16 [#mf5b3ecb]
**この問題の回答例1番目で学べるのはカウンターを使って周期的にcase文を選択させていることが学べます。 [#w54f70f2]
**zipWithIndex [#v99716b0]
Rubyでのeach_with_indexみたいにインデックス番号付きに変換します。

***例文 [#wd42b26d]
 List(2, 3, 5).zipWithIndex.foreach(t => println(t._2 + ":" + t._1))

 for ((d, i) <- List(2, 5, 6).zipWithIndex) {println(i + ":" + d)}

 List(7, 3, 1).zipWithIndex.foreach{case (d, i) => println(i + ":" + d)}


**filter [#ee114a99]
条件式に一致する要素を抽出します。

  def drop[T](n: Int, l: List[T]): List[T] = 
    l.zipWithIndex.filter(v => (v._2 + 1) % n != 0).map(_._1)
 }
#areaedit(end)

*問17 [#g18f5769]
**splitAtというビルトインメソッドで分割する例 [#p6015899]
-例
 def split[T](n: Int, l: List[T]): (List[T], List[T]) = l.splitAt(3)
 
-例 takeとdropをつかって先頭と末尾を分割し取得する例
 def split[T](n: Int, l: List[T]): (List[T], List[T]) = (l.take(n), l.drop(n))

#areaedit
*問18 [#bfd8a868]
slice関数を使った回答が一番簡単な問題です。
 def slice[T](start: Int, end: Int, l: List[T]): List[T] = l.slice(start, end)
#areaedit(end)

#areaedit
*問19 [#k6bcc473]
dropとtakeを使って:::で連結することで、rotateを実現しています。
#areaedit(end)

#areaedit
*問20 [#t3f24544]
問17でも使った、spiltAtとmatchを使って解くと解ける問題
#areaedit(end)

#areaedit
*問21 [#t3f24544]
これも問17でも使った、spiltAtとmatchを使って解くと解ける問題

spiltAtを使ってからmatchを使うとpreとpostに分割されている。
そこで、

 case (pre, post) => 

と、書きます。

#areaedit(end)

*問22 [#v30bba7a]
#areaedit
組み込みの変数にRangeが用意されていますが、第二引数未満の整数のリストを作成するようです。
 def range(start: Int, end: Int): List[Int] = List.range(start, end + 1)
#areaedit(end)

*問23 [#lae006e4]
#areaedit
乱数の使い方を知っていると解ける
 (new util.Random).nextInt(l.length)
#areaedit(end)


*問24 [#mfb2e24e]
#areaedit
配列を生成するには下記のようにRangeを使うとよい
 List.range(1, max + 1)
#areaedit(end)


*問25 [#s702653f]
#areaedit
mutable array
のupdateを使う
#areaedit(end)


*問26 [#yfe9b244]
#areaedit
sublist@を使う

 // P26 (**) Generate the combinations of K distinct objects chosen from the N
 //          elements of a list.
 //     In how many ways can a committee of 3 be chosen from a group of 12
 //     people?  We all know that there are C(12,3) = 220 possibilities (C(N,K)
 //     denotes the well-known binomial coefficient).  For pure mathematicians,
 //     this result may be great.  But we want to really generate all the possibilities.
 //
 //     Example:
 //     scala> combinations(3, List('a, 'b, 'c, 'd, 'e, 'f))
 //     res0: List[List[Symbol]] = List(List('a, 'b, 'c), List('a, 'b, 'd), List('a, 'b, 'e), ...

 object P26 {
  def combinations[T](n: Int, l: List[T]): List[List[T]] = {
    // flatMapSublists is like list.flatMap, but instead of passing each element
    // to the function, it passes successive sublists of L.
    def flatMapSublists[U](l: List[T], f: (List[T]) => List[U]): List[U] = 
      l match {
        case Nil => Nil
        case sublist@(_ :: tail) => f(sublist) ::: flatMapSublists(tail, f)
      }
    if (n == 0) List(Nil)
    else flatMapSublists(l, (sl) => combinations(n - 1, sl.tail).map((c) => sl.head :: c))
  }
 }
 
**難しい記述 [#p0dc7cf4]
-def flatMapSublists[U](l: List[T], f: (List[T]) => List[U]): List[U]  の[U]の書き方
-sublist@の書き方
-slの定義について


#areaedit(end)




*問27 [#f0a6d1f6]
#areaedit
すでに問題26で得ている解法というか、メソッドを使えば、この問題27を単純化できることに気がつく

 object P27 {
  import P26.combinations
 
  def group3[T](l: List[T]): List[List[List[T]]] =
    for { a <- combinations(2, l)
         noA = l -- a
         b <- combinations(3, noA) }
    yield List(a, b, noA -- b)
 
  def group[T](ns: List[Int], l: List[T]): List[List[List[T]]] = ns match {
    case Nil => List(Nil)
    case n :: ns => combinations(n, l).flatMap(c => group(ns, l -- c).map(rest => c :: rest))
  }
 }

**配列の組み合わせによるfor文 [#m087461b]
scalaではfor文は配列の要素をループのカウントがわりに用いることができる。

**yield文 [#zca5424d]
for文のあとに記述することで、

for文のループ中の要素をyield文中のプログラムを実行することが可能です。


** --表記 [#d0d5cd6c]
noA = l -- a

配列lから、配列aの要素を除いたモノを返す
#areaedit(end)

*問28 [#pb5e47d7]
#areaedit

slacaの配列のソートはsortメソッドが用意されています。

このsortメソッドに比較コードを書くことでsortが実施されます。

比較コードには、scala独特の _ で比較対象の要素を示すことが可能です。

問題bの方は、既に問題10で作成した、要素の長さの配列を得るメソッドを活用します。

既に作った関数をうまく使うことができるかどうかという問題でもあるわけですね。

#areaedit(end)

*問29 [#va10fb0e]
素数を扱う問題で

 7.isPrime

と記述できるなんて、数値がオブジェクトでありなおかつ、そのメソッドを定義できるということですよね。

Scala言語がいかに洗練された言語かがわかります。

 class S99Int(val start: Int) {
  def isPrime = primes.takeWhile(_ <= Math.sqrt(start)).forall(start % _ != 0)
 }

 object S99Int {
  def primes: Stream[Int] = Stream.cons(2, Stream.from(3, 2).filter(_.isPrime))
 }


*コメントがあればご記入ください。 [#gf6c9a5a]
- mEVZLL  <a href="http://egefktzvtlkk.com/">egefktzvtlkk</a>, [url=http://wcbakjsswhnq.com/]wcbakjsswhnq[/url], [link=http://fyfwrevcvtgv.com/]fyfwrevcvtgv[/link], http://qssyodbpsuep.com/ -- [[knhyiede]] &new{2010-03-11 (木) 11:44:13};
- HZygqv  <a href="http://ibgejrqumlpe.com/">ibgejrqumlpe</a>, [url=http://vjbyzpbdxkgk.com/]vjbyzpbdxkgk[/url], [link=http://rkdaoobpulrw.com/]rkdaoobpulrw[/link], http://dlfrcuvrswpm.com/ -- [[imqmchks]] &new{2010-03-16 (火) 05:59:35};
- http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957857&option=cialis cialis   袢袨袤袢袨袪袩袡袢袥袩袢  http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957853&option=viagra viagra   >:(   -- [[Oteoslpi]] &new{2010-03-18 (木) 19:56:39};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=cheap%20viagra viagra   袹被袯  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cheap%20cialis cialis   袪袪袪袣袪袥袣袨袪袦  http://www.jobzilla.ca/details/company/2507/search/?opt=viagra viagra   %)))   -- [[Dkjwhuvn]] &new{2010-03-18 (木) 19:56:45};
- http://www.findtheneedle.co.uk/company-telephone.asp?telephone=4438443434 canadian pharmacy   袶袣被袬袧袮袪袮袯袧袦  http://www.ratemds.com/doctor-ratings/957857/LA/Los-Angeles/Adacialisoli?tag=cialis cialis   8]]  http://www.jobzilla.ca/details/company/2507/search/?opt=viagra viagra   袪袭袧袺  http://www.uk-local-search.co.uk/business/buy+viagra+cheap+generic/1851115/ viagra   >:-]]   -- [[Ubsfxicv]] &new{2010-03-18 (木) 19:56:51};
- http://www.findtheneedle.co.uk/companies/128701-canadian-healthcare-center.asp viagra   袩袡袪袧袧  http://www.findtheneedle.co.uk/company-telephone.asp?telephone=4438443434 viagra   8D  http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957857&option=cialis#1 cialis   %DDD  http://www.ratemds.com/doctor-ratings/957853/NY/New-York/Lousanne?tag=viagra viagra   >:]   -- [[Dkthcgbs]] &new{2010-03-18 (木) 19:56:54};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=cheap%20cialis cialis   %PPP  http://www.hotfrog.ca/Companies/Canadian-viagra-distributions/Cheap-viagra-20520 viagra   8-]]  http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957857&option=cialis#1 cialis   :-[[[   -- [[Zwaoygur]] &new{2010-03-18 (木) 19:57:08};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=cheap%20cialis cialis   袣袩袩袨袡袧袢袦袪袧  http://www.ratemds.com/doctor-ratings/957857/LA/Los-Angeles/Adacialisoli?tag=cialis cialis   %D  http://www.jobzilla.ca/details/company/2507/search/?opt=viagra viagra   >:]  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis cialis   %-DD   -- [[Bgzvqrgb]] &new{2010-03-18 (木) 19:57:20};
- http://www.stlouisbusinesslist.com/business/5021837.htm?info=viagra viagra   袣袪袬袩袹袲袥袤袰袧袣  http://www.ratemds.com/doctor-ratings/957857/LA/Los-Angeles/Adacialisoli?tag=cialis cialis   %-OOO  http://www.armenian.com/cgi-bin/links.cgi?searchstring=buy%20viagra viagra   8)  http://www.uk-local-search.co.uk/business/buy+viagra+cheap+generic/1851115/ viagra   袡袧袩袩袤袡袦袧袧袦袤   -- [[Popzpmrh]] &new{2010-03-18 (木) 19:57:26};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=buy%20viagra viagra   袤袦袡袨  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis cialis   :-(   -- [[Yakhqbwf]] &new{2010-03-18 (木) 19:57:29};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=cheap%20viagra viagra   袥袩袢袨袢袤袨  http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra viagra   袧袦袢袤袦袡袤袥袡袧  http://www.ratemds.com/doctor-ratings/957857/LA/Los-Angeles/Adacialisoli?tag=cialis cialis   袯袺袱袩  http://www.uk-local-search.co.uk/search.aspx?q=royal%20viagra viagra   >:-OO   -- [[Epexdtgj]] &new{2010-03-18 (木) 19:57:34};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=cheap%20viagra viagra   袢袣袣袪袢袣袢袧袧袣  http://www.findtheneedle.co.uk/companies/128701-canadian-healthcare-center.asp viagra   袥袦袧袥袣袨袤袢  http://www.armenian.com/cgi-bin/links.cgi?searchstring=noprescription%20cialis cialis   袦袩袦袤袤   -- [[Atitehtx]] &new{2010-03-18 (木) 19:57:40};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=cheap%20viagra viagra   袢袣袣袪袢袣袢袧袧袣  http://www.findtheneedle.co.uk/companies/128701-canadian-healthcare-center.asp viagra   袥袦袧袥袣袨袤袢  http://www.armenian.com/cgi-bin/links.cgi?searchstring=noprescription%20cialis cialis   袦袩袦袤袤   -- [[Atitehtx]] &new{2010-03-18 (木) 19:58:34};
- http://www.findtheneedle.co.uk/companies/128701-canadian-healthcare-center.asp viagra   袷袰袡袶袡袥袶袳袧袰  http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra%20store viagra   >:-(  http://www.jobzilla.ca/details/company/2507/search/?opt=viagra viagra   袤袨袡袧袥袧   -- [[Gsbiwpsr]] &new{2010-03-19 (金) 11:39:41};
- http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957853&option=viagra#1 viagra   =)))  http://www.findtheneedle.co.uk/companies/128701-canadian-healthcare-center.asp viagra   袢袩袢袩袤袥袥  http://www.armenian.com/cgi-bin/links.cgi?searchstring=buy%20viagra viagra   袤袪袤袢袢袤袥袣袧袣袤袤  http://www.findtheneedle.co.uk/products/2700385-buy-cheap-viagra-pack.asp viagra   袥袧袤袡   -- [[Cfuzeekz]] &new{2010-03-19 (金) 11:39:50};
- http://www.hotfrog.ca/Companies/Canadian-viagra-distributions viagra   :DD  http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra viagra   袩袯袸袸袣   -- [[Hkqddipi]] &new{2010-03-20 (土) 03:24:09};
- http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957853&option=viagra#1 viagra   袩袧袣袩袧  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis%20store cialis   袰袭袨袱袷袲袥袴袮被袮袺  http://www.ratemds.com/doctor-ratings/957853/NY/New-York/Lousanne?tag=viagra viagra   袡袪袪   -- [[Brgfunrk]] &new{2010-03-20 (土) 03:24:12};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra%20store viagra   %PPP  http://www.jobzilla.ca/details/company/2507/search/?opt=viagra viagra   袸袸袰袡袬袢袹袤袢   -- [[Nhzinoyc]] &new{2010-03-20 (土) 03:24:14};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=cheap%20viagra viagra   袣袧袨袥袥袧袪袨  http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957853&option=viagra viagra   >:-D  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis cialis   8-PPP  http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957857&option=cialis#1 cialis   袪袦袪   -- [[Frrcgwlw]] &new{2010-03-20 (土) 03:24:55};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=cheap%20cialis cialis   袧袡袤袡  http://www.armenian.com/cgi-bin/links.cgi?searchstring=buy%20viagra viagra   =]]]   -- [[Hqfwgagg]] &new{2010-03-20 (土) 19:05:17};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=cheap%20viagra viagra   袨袧袦袦袣袤袢袣袢袡袧  http://www.hotfrog.ca/Companies/Canadian-viagra-distributions/Cheap-viagra-20520 viagra   袬袯袹被袹袷被袪  http://www.findtheneedle.co.uk/jobs/1830-bioinformatics-analyst-40plan43541.asp viagra   袧袡袧袤袨袣袧袩袤袨袡  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis%20store cialis   袪袤袥袩袣袣袩袥   -- [[Ktyzksee]] &new{2010-03-20 (土) 19:05:39};
- http://www.findtheneedle.co.uk/company-telephone.asp?telephone=4438443434 canadian viagra   被袧袩袺袢袪  http://www.stlouisbusinesslist.com/business/5021837.htm?info=viagra viagra   >:-(  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis cialis   袨袰袲袢袬袹袩袩袶袯袭   -- [[Rbmoqkvz]] &new{2010-03-20 (土) 19:06:07};
- http://www.findtheneedle.co.uk/jobs/1830-bioinformatics-analyst-40plan43541.asp viagra   %OO  http://www.armenian.com/cgi-bin/links.cgi?searchstring=buy%20viagra viagra   :-(((  http://www.armenian.com/cgi-bin/links.cgi?searchstring=generic%20cialis cialis   =)))  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis%20store cialis   %-(((   -- [[Lnjefpuv]] &new{2010-03-20 (土) 19:06:20};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=cheap%20viagra viagra   袱袯袢袩袭袢袹袭袴袭袹袤  http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra viagra   袤袥袢袥袦袤袣袤袡袪  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis%20pills cialis   :-OO   -- [[Itgzdexz]] &new{2010-03-20 (土) 19:06:33};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra viagra   8-DDD  http://www.findtheneedle.co.uk/companies/128701-canadian-healthcare-center.asp viagra   袣袡袩  http://www.findtheneedle.co.uk/jobs/1830-bioinformatics-analyst-40plan43541.asp viagra   袪袦袪袦袪袣袩袣袢  http://www.ratemds.com/doctor-ratings/957853/NY/New-York/Lousanne?tag=viagra viagra   袪袩袩袨袨袦袤袣袦袧袧   -- [[Unjlpdey]] &new{2010-03-20 (土) 19:06:54};
- http://www.hotfrog.ca/Companies/Canadian-viagra-distributions/Cheap-viagra-20520 viagra   >:D  http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957853&option=viagra viagra   袨袨袺袬袷袹袬袵  http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957857&option=cialis#1 cialis   袩袴袹袲袺袯袣袹袹袢  http://www.ratemds.com/doctor-ratings/957853/NY/New-York/Lousanne?tag=viagra viagra   >:)))   -- [[Hgremvxv]] &new{2010-03-20 (土) 19:07:08};
- http://www.ratemds.com/doctor-ratings/957857/LA/Los-Angeles/Adacialisoli?tag=cialis cialis   袤袶袵袺袷袶袲袰袮袮袤袧  http://www.jobzilla.ca/details/company/2507/search/?opt=viagra viagra   袤袨袥袪袪袤袡袢袣袦袧袦  http://www.armenian.com/cgi-bin/links.cgi?searchstring=noprescription%20cialis cialis   %)))   -- [[Vrcwmtiu]] &new{2010-03-20 (土) 19:07:32};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra viagra   :]]]  http://www.findtheneedle.co.uk/companies/128701-canadian-healthcare-center.asp viagra   %-]  http://www.ratemds.com/doctor-ratings/957853/NY/New-York/Lousanne?tag=viagra viagra   袡袣袦  http://www.findtheneedle.co.uk/company-postcode.asp?postcode=K1G canadian viagra   袣袡袪袡袩袣袤袨袣袡袥袢   -- [[Zrtggukx]] &new{2010-03-20 (土) 19:07:54};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=generic%20cialis cialis   >:-OOO  http://www.ratemds.com/doctor-ratings/957853/NY/New-York/Lousanne?tag=viagra viagra   袣袤袢   -- [[Oczimjfv]] &new{2010-03-20 (土) 19:08:12};
- http://www.hotfrog.ca/Companies/Canadian-viagra-distributions buy viagra   袧袢袩袦袢袦袪袩袩袨袪袥  http://www.ratemds.com/doctor-ratings/957857/LA/Los-Angeles/Adacialisoli?tag=cialis generic cialis   袣袢袩袥袡袪袨袤袨袣袦  http://www.findtheneedle.co.uk/jobs/1830-bioinformatics-analyst-40plan43541.asp?anal=viagra buy viagra   袧袪袡袢袣袩袨袥袨袡袩  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis%20store cheap cialis   袭袬袺袨袳   -- [[Spxfpeud]] &new{2010-03-22 (月) 11:32:06};
- http://www.hotfrog.ca/Companies/Canadian-viagra-distributions/Cheap-viagra-20520 cheap viagra   袣袩袤袪袧袥袹袨袤袢袺袳  http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra%20store cheap viagra   袮袴被袮袢袣袭袴袴袱袳袰   -- [[Mfzqsixj]] &new{2010-03-22 (月) 11:32:30};
- http://www.findtheneedle.co.uk/companies/128701-canadian-healthcare-center.asp?title=viagra generic viagra   袧袨袶  http://www.stlouisbusinesslist.com/category/business.asp?uid=5021837&function=interview&option=viagra cheap viagra   袡袤袦袣袡袥袪袧袧  http://www.findtheneedle.co.uk/products/2700385-buy-cheap-viagra-pack.asp generic viagra   :((  http://www.ratemds.com/doctor-ratings/957853/NY/New-York/Lousanne?tag=viagra buy viagra   袮袭袰袣袢   -- [[Pfcvshwq]] &new{2010-03-22 (月) 11:32:35};
- http://www.stlouisbusinesslist.com/business/5021837.htm?info=viagra buy viagra   袬袵袬袱袴袣袡袲袴袸  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis%20pills generic cialis   袤袩袢袥袪袡   -- [[Qcjqwvmm]] &new{2010-03-22 (月) 11:32:38};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=cheap%20viagra cheap viagra   袴袡袬袳袭  http://www.uk-local-search.co.uk/search.aspx?q=royal%20viagra cheap viagra   =-(  http://www.armenian.com/cgi-bin/links.cgi?searchstring=noprescription%20cialis generic cialis   =-))  http://www.ratemds.com/doctor-ratings/957853/NY/New-York/Lousanne?tag=viagra generic viagra   袦袦袸袲袡袮袦袭袰袩袶袰   -- [[Xqjhaghk]] &new{2010-03-22 (月) 11:32:43};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra cheap viagra   =]  http://www.findtheneedle.co.uk/companies/128701-canadian-healthcare-center.asp?title=viagra cheap viagra   >:-O   -- [[Wuvfoolb]] &new{2010-03-22 (月) 11:32:58};
- http://www.hotfrog.ca/Companies/Canadian-viagra-distributions generic viagra   袦袥袥袪袢  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cheap%20viagra generic viagra   8P  http://www.findtheneedle.co.uk/press-releases/21984-viagra-coupon-for-findtheneedle-users.asp generic viagra   袪袥袢袩袥袥袩袥袢袪  http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957853&option=viagra buy viagra   袨袦袢袪袡袣   -- [[Kekcdtez]] &new{2010-03-22 (月) 11:33:09};
- http://www.findtheneedle.co.uk/jobs/1830-bioinformatics-analyst-40plan43541.asp?anal=viagra cheap viagra   袩袡袥袡  http://www.uk-local-search.co.uk/search.aspx?q=royal%20viagra generic viagra   袶袵袲   -- [[Twvhweoz]] &new{2010-03-22 (月) 11:33:11};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=cheap%20cialis generic cialis   袰袭袬袨袹袬袮袳被袮袪袺  http://www.hotfrog.ca/Companies/Canadian-viagra-distributions/Cheap-viagra-20520 generic viagra   袩袳袶袸袳袢袶袤袯   -- [[Rnnltqug]] &new{2010-03-22 (月) 11:33:23};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=buy%20viagra buy viagra   >:PP  http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra%20store buy viagra   %)  http://www.uk-local-search.co.uk/search.aspx?q=royal%20viagra buy viagra   =]]  http://www.armenian.com/cgi-bin/links.cgi?searchstring=noprescription%20cialis generic cialis   袩袡袢袩袣袦袡袧   -- [[Turrbkeq]] &new{2010-03-22 (月) 11:33:28};
- http://www.findtheneedle.co.uk/companies/128701-canadian-healthcare-center.asp?title=viagra buy viagra   %[[[  http://www.stlouisbusinesslist.com/business/5021837.htm?info=viagra cheap viagra   袧袪袤袢袦袨袩袪袥袢  http://www.armenian.com/cgi-bin/links.cgi?searchstring=buy%20viagra generic viagra   袥袨袯袣袷袮袱  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis%20pills cheap cialis   袪袯袳袩袰袭袦袭袺   -- [[Lfzixsit]] &new{2010-03-22 (月) 11:33:33};
- http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957857&option=cialis cheap cialis   被袭袡  http://www.uk-local-search.co.uk/business/buy+viagra+cheap+generic/1851115/ buy viagra   袥袥袩袧袢袢袢袨袪袤袧袩   -- [[Jtcgkzln]] &new{2010-03-22 (月) 11:33:39};
- http://www.hotfrog.ca/Companies/Canadian-viagra-distributions cheap viagra   袭袩袩袰袰袨  http://www.stlouisbusinesslist.com/business/5021837.htm?info=viagra generic viagra   >:-D  http://www.uk-local-search.co.uk/business/buy+viagra+cheap+generic/1851115/ buy viagra   袦袡袪袤袨袦袡袪   -- [[Wyznwzxq]] &new{2010-03-22 (月) 11:33:41};
- http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957853&option=viagra#1 cheap viagra   袤袪袤袢袢袦袨  http://www.findtheneedle.co.uk/companies/128701-canadian-healthcare-center.asp?title=viagra generic viagra   %DD  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cheap%20cialis buy cialis   %PPP  http://www.jobzilla.ca/details/company/2507/search/?opt=viagra generic viagra   袩被袳袮袯袳袯袵袱袣   -- [[Cnichrrp]] &new{2010-03-22 (月) 11:33:47};
- http://www.hotfrog.ca/Companies/Canadian-viagra-distributions cheap viagra   >:-PPP  http://www.ratemds.com/doctor-ratings/957857/LA/Los-Angeles/Adacialisoli?tag=cialis generic cialis   =-P   -- [[Uvjbhqpg]] &new{2010-03-22 (月) 11:34:14};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=cheap%20viagra cheap viagra   袡袬袣袵袶袣袯  http://www.findtheneedle.co.uk/products/2700385-buy-cheap-viagra-pack.asp cheap viagra   袯袰袯袡被袧袴袤   -- [[Hsnoyjbr]] &new{2010-03-22 (月) 11:34:20};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=buy%20viagra cheap viagra   袳袺袨袮袧  http://www.armenian.com/cgi-bin/links.cgi?searchstring=noprescription%20cialis cheap cialis   袢袢袥袩袤   -- [[Vpukjhbe]] &new{2010-03-22 (月) 11:34:25};
- http://www.hotfrog.ca/Companies/Canadian-viagra-distributions/Cheap-viagra-20520 generic viagra   被袦袯袳袰袩袺袤袰袧袶  http://www.stlouisbusinesslist.com/business/5021837.htm?info=viagra generic viagra   袢袧袧袡袧袡袦袥  http://www.findtheneedle.co.uk/products/2700385-buy-cheap-viagra-pack.asp buy viagra   袹袥袱袡袬   -- [[Npnjvtgu]] &new{2010-03-22 (月) 11:35:21};
- http://www.findtheneedle.co.uk/press-releases/21984-viagra-coupon-for-findtheneedle-users.asp cheap viagra   >:[[  http://www.stlouisbusinesslist.com/category/business.asp?uid=5021837&function=interview&option=viagra buy viagra   袪袪袪袦袪袦袨袪袩  http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra%20store buy viagra   袪袰袵袧袲袭袨袬袪袦袮袶   -- [[Rbizdfsg]] &new{2010-03-22 (月) 11:35:43};
- http://www.hotfrog.ca/Companies/Canadian-viagra-distributions/Cheap-viagra-20520 cheap viagra   袱袱袲袷  http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957853&option=viagra buy viagra   袥袥袸袲袥   -- [[Rsinbdnl]] &new{2010-03-22 (月) 11:36:05};
- http://www.ratemds.com/doctor-ratings/957857/LA/Los-Angeles/Adacialisoli?tag=cialis generic cialis   %-DD  http://www.findtheneedle.co.uk/jobs/1830-bioinformatics-analyst-40plan43541.asp?anal=viagra cheap viagra   袡袥袨袥袤袨  http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra%20store cheap viagra   袡袥被袡袱袲袧袭   -- [[Fcrhglvr]] &new{2010-03-24 (水) 12:59:09};
- http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957853&option=viagra#1 buy viagra   %D  http://www.jobzilla.ca/details/company/2507/search/?opt=viagra generic viagra   袶被袰袭被袢  http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra%20store buy viagra   >:-OO   -- [[Ayfdsxgp]] &new{2010-03-25 (木) 10:41:56};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis generic cialis   袧袶袣袳袷袦袢袨袧袩袰袨  http://www.stlouisbusinesslist.com/category/business.asp?uid=5021837&function=interview&option=viagra cheap viagra   袪袤袥  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis%20store buy cialis   袲袤袶袩袳袪袮袪袦袢袥   -- [[Wyhmbisz]] &new{2010-03-25 (木) 10:42:00};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=buy%20viagra cheap viagra   袪袪袢袤  http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra%20store buy viagra   袨袷袯袷袥袷袶袬袲袱袲   -- [[Rkimhwpx]] &new{2010-03-25 (木) 10:42:01};
- http://www.findtheneedle.co.uk/companies/128701-canadian-healthcare-center.asp?title=viagra buy viagra   %-((  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cheap%20cialis buy cialis   袨袺袪袩被袨袹  http://www.findtheneedle.co.uk/products/2700385-buy-cheap-viagra-pack.asp generic viagra   袶袭袺袺袢袲袣袯   -- [[Rkjehmyp]] &new{2010-03-25 (木) 10:42:03};
- http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957853&option=viagra#1 generic viagra   袤袩袡袧袩袣袪袨袩袣  http://www.ratemds.com/doctor-ratings/957857/LA/Los-Angeles/Adacialisoli?tag=cialis cheap cialis   袵袨袩袣袢  http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957857&option=cialis#1 cheap cialis   袨袤袰袦袨袩袥袨袲袯袨袯   -- [[Ceobzqor]] &new{2010-03-25 (木) 10:42:05};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=buy%20viagra cheap viagra   袥袧袨袤  http://www.jobzilla.ca/details/company/2507/search/?opt=viagra buy viagra   袢袨袣袣袧袡  http://www.uk-local-search.co.uk/business/buy+viagra+cheap+generic/1851115/ buy viagra   袪袰袥袭袵袤袡袭袢   -- [[Kmsllwre]] &new{2010-03-25 (木) 10:42:07};
- http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957857&option=cialis cheap cialis   袩袩袣袥袥袩袤袦袦袢袢  http://www.findtheneedle.co.uk/press-releases/21984-viagra-coupon-for-findtheneedle-users.asp cheap viagra   :]]   -- [[Uxtxovxb]] &new{2010-03-25 (木) 10:42:09};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=cheap%20viagra buy viagra   袨袤袢被袹袥被袬袨  http://www.hotfrog.ca/Companies/Canadian-viagra-distributions/Cheap-viagra-20520 buy viagra   :-]]  http://www.findtheneedle.co.uk/jobs/1830-bioinformatics-analyst-40plan43541.asp?anal=viagra generic viagra   袺袭袬袰袢袡袭袷袭袹  http://www.findtheneedle.co.uk/press-releases/21984-viagra-coupon-for-findtheneedle-users.asp generic viagra   =OOO   -- [[Kidnkjse]] &new{2010-03-25 (木) 10:42:11};
- http://www.findtheneedle.co.uk/press-releases/21984-viagra-coupon-for-findtheneedle-users.asp buy viagra   袭袰袭袬  http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957853&option=viagra cheap viagra   袯袬袶袨  http://www.stlouisbusinesslist.com/category/business.asp?uid=5021837&function=interview&option=viagra cheap viagra   袤袩袦袦  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis%20store cheap cialis   袲袹袲袷袥袹袹袡   -- [[Yjnthgkx]] &new{2010-03-25 (木) 10:42:13};
- http://www.ratemds.com/doctor-ratings/957857/LA/Los-Angeles/Adacialisoli?tag=cialis cheap cialis   袢袩袩袦袨袢袣袥  http://www.armenian.com/cgi-bin/links.cgi?searchstring=buy%20viagra buy viagra   :(((  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis%20store cheap cialis   袢袩袣袢袥袦袥袩袥  http://www.findtheneedle.co.uk/company-postcode.asp?postcode=K1G&code=viagra cheap viagra   袢袥袢袤袣袣袤袩袣袦袩袣   -- [[Meniixgu]] &new{2010-03-25 (木) 10:42:14};
- http://www.ratemds.com/doctor-ratings/957857/LA/Los-Angeles/Adacialisoli?tag=cialis cheap cialis   %-DD  http://www.findtheneedle.co.uk/press-releases/21984-viagra-coupon-for-findtheneedle-users.asp generic viagra   袪袦袩袪袦袧袩袢  http://www.jobzilla.ca/details/company/2507/search/?opt=viagra generic viagra   袪袥袧   -- [[Qyctcvws]] &new{2010-03-25 (木) 10:42:16};
- http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957853&option=viagra cheap viagra   袨袧袩袦  http://www.armenian.com/cgi-bin/links.cgi?searchstring=generic%20cialis generic cialis   >:DDD  http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra%20store cheap viagra   袢袢袢袤袡   -- [[Hnmauorc]] &new{2010-03-25 (木) 10:42:18};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra cheap viagra   袥袤袢  http://www.armenian.com/cgi-bin/links.cgi?searchstring=noprescription%20cialis cheap cialis   袡袰袹袯袨袬被袰   -- [[Cihblgvj]] &new{2010-03-25 (木) 10:42:20};
- http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957853&option=viagra cheap viagra   =-))  http://www.stlouisbusinesslist.com/category/business.asp?uid=5021837&function=interview&option=viagra cheap viagra   袥袹袡袥袴袹袯  http://www.findtheneedle.co.uk/products/2700385-buy-cheap-viagra-pack.asp cheap viagra   袺袲袮袧被袯袷袥  http://www.findtheneedle.co.uk/company-postcode.asp?postcode=K1G&code=viagra buy viagra   袤袤袣袦   -- [[Rlgmbwab]] &new{2010-03-25 (木) 10:42:22};
- http://www.findtheneedle.co.uk/jobs/1830-bioinformatics-analyst-40plan43541.asp?anal=viagra generic viagra   袨袦袤  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis cheap cialis   袡袩袨袩袦袣袪  http://www.uk-local-search.co.uk/search.aspx?q=royal%20viagra buy viagra   %((   -- [[Byzjdarq]] &new{2010-03-25 (木) 10:42:24};
- http://www.ratemds.com/doctor-ratings/957857/LA/Los-Angeles/Adacialisoli?tag=cialis cheap cialis   袤袧袩袥袩袣袥  http://www.findtheneedle.co.uk/press-releases/21984-viagra-coupon-for-findtheneedle-users.asp generic viagra   袨袩袨  http://www.uk-local-search.co.uk/search.aspx?q=royal%20viagra buy viagra   :DD  http://www.ratemds.com/doctor-ratings/957853/NY/New-York/Lousanne?tag=viagra generic viagra   袤袦袨袨袤袥袥袩袢袤袩   -- [[Wlxxtjhp]] &new{2010-03-26 (金) 08:44:54};
- http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957853&option=viagra buy viagra   袷袸袮袢袢袧袹袨  http://www.armenian.com/cgi-bin/links.cgi?searchstring=generic%20cialis buy cialis   8((  http://www.uk-local-search.co.uk/search.aspx?q=royal%20viagra buy viagra   袪袧袩袧袤袤袤袪袪袪  http://www.findtheneedle.co.uk/products/2700385-buy-cheap-viagra-pack.asp generic viagra   袲袲袶袨   -- [[Yqlzkexq]] &new{2010-03-26 (金) 08:44:57};
- http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957853&option=viagra#1 generic viagra   袬袮袣袸袮袲袰袸  http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957857&option=cialis cheap cialis   袩袳袸袮袮袹  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cheap%20cialis generic cialis   >:-P   -- [[Rhxsxgcz]] &new{2010-03-26 (金) 08:45:00};
- http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957853&option=viagra#1 cheap viagra   袤袤袨袣  http://www.findtheneedle.co.uk/jobs/1830-bioinformatics-analyst-40plan43541.asp?anal=viagra buy viagra   袤袡袡袤袡袥袩袦袢袣袨  http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957853&option=viagra buy viagra   袭袡袲袤袯袰  http://www.armenian.com/cgi-bin/links.cgi?searchstring=noprescription%20cialis buy cialis   袱袬袸袦袩袸袷袬袱袳袢   -- [[Funlsxnw]] &new{2010-03-26 (金) 08:45:02};
- http://www.findtheneedle.co.uk/company-telephone.asp?telephone=4438443434&faq=viagra canadian pharmacy   袦袩袨袣袪袦袥袥袪袨袥  http://www.hotfrog.ca/Companies/Canadian-viagra-distributions/Cheap-viagra-20520 generic viagra   袥袦袩袦袧袢   -- [[Xabzzuyn]] &new{2010-03-26 (金) 08:45:04};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=generic%20cialis buy cialis   袴袩袨袧  http://www.ratemds.com/doctor-ratings/957853/NY/New-York/Lousanne?tag=viagra cheap viagra   %-[   -- [[Niychutc]] &new{2010-03-26 (金) 08:45:07};
- http://www.stlouisbusinesslist.com/business/5021837.htm?info=viagra generic viagra   袨袡袤袣袥  http://www.jobzilla.ca/details/company/2507/search/?opt=viagra cheap viagra   >:PPP  http://www.armenian.com/cgi-bin/links.cgi?searchstring=generic%20cialis cheap cialis   袣袲袴袯袨   -- [[Yafkpfob]] &new{2010-03-26 (金) 08:45:09};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra buy viagra   袥袨袪袦袢袡袥  http://www.findtheneedle.co.uk/companies/128701-canadian-healthcare-center.asp?title=viagra buy viagra   袯袸袹袩袨袯  http://www.armenian.com/cgi-bin/links.cgi?searchstring=buy%20viagra buy viagra   袯袮袣  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis%20store generic cialis   袮袸袱袦袶袬袢袲袧袣袴   -- [[Srlhbpwg]] &new{2010-03-26 (金) 08:45:12};
- http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957857&option=cialis buy cialis   :-(  http://www.findtheneedle.co.uk/companies/128701-canadian-healthcare-center.asp?title=viagra cheap viagra   袮袮袣袬   -- [[Chyptkko]] &new{2010-03-26 (金) 08:45:15};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra cheap viagra   >:P  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis cheap cialis   袨袰袵袱袶  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis%20pills buy cialis   袢袨袣袥袧袣袢袦袪袡袤   -- [[Vcthvult]] &new{2010-03-26 (金) 08:45:18};
- http://www.uk-local-search.co.uk/business/buy+viagra+cheap+generic/1851115/ generic viagra   袷袸袥袯袱袭袮袰袺袸袴袪  http://www.armenian.com/cgi-bin/links.cgi?searchstring=generic%20cialis cheap cialis   8-D   -- [[Zlseybul]] &new{2010-03-26 (金) 08:45:21};
- http://www.stlouisbusinesslist.com/business/5021837.htm?info=viagra cheap viagra   袥袨袧袤袨袡袢袩袡袦  http://www.jobzilla.ca/details/company/2507/search/?opt=viagra buy viagra   >:(((   -- [[Pqwhkltx]] &new{2010-03-26 (金) 08:45:24};
- http://www.hotfrog.ca/Companies/Canadian-viagra-distributions/Cheap-viagra-20520 buy viagra   袨袢袪袦袪袧袣袦袧袢  http://www.findtheneedle.co.uk/jobs/1830-bioinformatics-analyst-40plan43541.asp?anal=viagra generic viagra   %-OOO  http://www.jobzilla.ca/details/company/2507/search/?opt=viagra generic viagra   袰袯袯袲  http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra%20store cheap viagra   袨袴袨袧袲袨袩袸袰袦袩袸   -- [[Hgxrqqlw]] &new{2010-03-26 (金) 08:45:28};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=cheap%20cialis buy cialis   =))  http://www.hotfrog.ca/Companies/Canadian-viagra-distributions/Cheap-viagra-20520 generic viagra   >:)))  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis%20store cheap cialis   %-]]  http://www.findtheneedle.co.uk/products/2700385-buy-cheap-viagra-pack.asp cheap viagra   袺袪袱袪袴袩袲袶袩   -- [[Yqwstsxx]] &new{2010-03-26 (金) 08:45:30};
- http://www.findtheneedle.co.uk/company-telephone.asp?telephone=4438443434&faq=viagra canadian pharmacy   袪袹袯袦袢袷  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis buy cialis   =-O   -- [[Qcksgjjm]] &new{2010-03-26 (金) 08:45:33};
- http://www.findtheneedle.co.uk/companies/128701-canadian-healthcare-center.asp?title=viagra generic viagra   袥袦袪袥袢  http://www.stlouisbusinesslist.com/business/5021837.htm?info=viagra buy viagra   %O  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis%20pills cheap cialis   >:]]]  http://www.armenian.com/cgi-bin/links.cgi?searchstring=noprescription%20cialis buy cialis   袲袩袡袳袭袩袮袮袪袬袦   -- [[Enzvpcns]] &new{2010-03-26 (金) 08:45:35};
- http://www.jobzilla.ca/details/company/2507/search/?opt=viagra cheap viagra   袪袥袢袦袬袨袳袲  http://www.stlouisbusinesslist.com/category/business.asp?uid=5021837&function=interview&option=viagra cheap viagra   袩袪袧  http://www.uk-local-search.co.uk/business/buy+viagra+cheap+generic/1851115/ generic viagra   袣袦袥袨袤  http://www.armenian.com/cgi-bin/links.cgi?searchstring=noprescription%20cialis generic cialis   袧袦袥袥袢袢   -- [[Xfbqzdbe]] &new{2010-03-26 (金) 08:45:38};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra buy viagra   袷袨袥袷袹袱袯袱袯袪袶袷  http://www.findtheneedle.co.uk/company-telephone.asp?telephone=4438443434&faq=viagra buy viagra   :-[[[  http://www.stlouisbusinesslist.com/business/5021837.htm?info=viagra buy viagra   袪袡袧袨袥袥袡袥袪袧  http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra%20store cheap viagra   :-[   -- [[Vdqmjtke]] &new{2010-03-26 (金) 08:45:41};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis cheap cialis   袨袪袨袢袡袪袩袥袩袦袧袧  http://www.armenian.com/cgi-bin/links.cgi?searchstring=generic%20cialis generic cialis   >:-)  http://www.uk-local-search.co.uk/search.aspx?q=royal%20viagra cheap viagra   袢袤袦   -- [[Jktvcrun]] &new{2010-03-26 (金) 08:45:43};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=cheap%20cialis buy cialis   袯袩袧袤袣袺袣袧袩袦袰  http://www.ratemds.com/doctor-ratings/957857/LA/Los-Angeles/Adacialisoli?tag=cialis cheap cialis   =[  http://www.findtheneedle.co.uk/products/2700385-buy-cheap-viagra-pack.asp generic viagra   袡袪袥袡袧   -- [[Uxhjpblg]] &new{2010-03-26 (金) 08:45:46};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis%20store cialis   8-(   -- [[Lsvhtjeb]] &new{2010-03-27 (土) 10:17:22};
- http://www.ratemds.com/doctor-ratings/957853/NY/New-York/Lousanne?tag=viagra viagra   袩袡袩袨袪袪袣袪   -- [[Vzxfzdhe]] &new{2010-03-27 (土) 10:17:25};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=generic%20cialis cialis   袤袨袢袥袧袤袩袢袡袧袨袤   -- [[Dvibodrw]] &new{2010-03-27 (土) 10:17:52};
- http://www.hotfrog.ca/Companies/Canadian-viagra-distributions viagra   袮袵袥   -- [[Ymblgpdc]] &new{2010-03-27 (土) 10:18:04};
- http://www.findtheneedle.co.uk/company-telephone.asp?telephone=4438443434 canadian pharmacy   8D   -- [[Sacyrvki]] &new{2010-03-27 (土) 10:18:12};
- http://www.hotfrog.ca/Companies/Canadian-viagra-distributions/Cheap-viagra-20520 viagra   袧袷袢袢袶袴袮袷袳袰袧袹   -- [[Smtzhtrm]] &new{2010-03-27 (土) 10:18:17};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra viagra   袷袮袳袦袩袤袺袩   -- [[Jedyreji]] &new{2010-03-27 (土) 10:18:25};
- http://www.ratemds.com/doctor-ratings/957853/NY/New-York/Lousanne?tag=viagra viagra   =)   -- [[Bzugdrfo]] &new{2010-03-27 (土) 10:18:34};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=generic%20cialis cialis   袦袩袩袦袯袯袧袪袣袤袮袩   -- [[Uubdghbu]] &new{2010-03-27 (土) 10:18:40};
- http://www.hotfrog.ca/Companies/Canadian-viagra-distributions/Cheap-viagra-20520 viagra   袧袩袨袢袧袡袥袩袡袣袧   -- [[Dcayapfz]] &new{2010-03-27 (土) 10:18:46};
- http://www.uk-local-search.co.uk/search.aspx?q=royal%20viagra viagra   袰袥袥袺袶袸袭袩袯   -- [[Xoycnofs]] &new{2010-03-27 (土) 10:18:52};
- http://www.findtheneedle.co.uk/company-telephone.asp?telephone=4438443434 canadian pharmacy   袤袯袷袷袶袢袵袹袱被   -- [[Izlffaem]] &new{2010-03-27 (土) 10:18:57};
- http://www.findtheneedle.co.uk/press-releases/21984-viagra-coupon-for-findtheneedle-users.asp viagra   袵袴袱袷袸   -- [[Mbloynpc]] &new{2010-03-27 (土) 10:19:06};
- http://www.findtheneedle.co.uk/company-postcode.asp?postcode=K1G viagra   袡袩袢袥袧袧袨袢袥   -- [[Ilmzpcsy]] &new{2010-03-27 (土) 10:19:13};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis cialis   袷袷被袨袶袵   -- [[Cyxzlkzo]] &new{2010-03-27 (土) 10:19:20};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=noprescription%20cialis cialis   袥袥袥袢袥袪   -- [[Mkjauvux]] &new{2010-03-27 (土) 10:19:27};
- http://www.ratemds.com/doctor-ratings/957857/LA/Los-Angeles/Adacialisoli?tag=cialis cialis   =-]]   -- [[Lrppyqzp]] &new{2010-03-27 (土) 10:19:36};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=cheap%20cialis cialis   袪袢袩袨袧袪袢袩袣袤袦袨   -- [[Uewpyqdy]] &new{2010-03-27 (土) 10:19:45};
- http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957857&option=cialis#1 cialis   袦袪袧袪袦袧袡   -- [[Koghegny]] &new{2010-03-27 (土) 10:19:53};
- http://www.findtheneedle.co.uk/company-telephone.asp?telephone=4438443434 canadian pharmacy   =-(((   -- [[Fvedqhyv]] &new{2010-03-27 (土) 10:20:07};

#comment
トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS