1read 100read
2012年09月プログラム18: プログラミング言語 Scala 8冊目 (562) TOP カテ一覧 スレ一覧 2ch元 削除依頼
スレ立てるまでもない質問はここで 121匹目 (1001)
CLDC+MIDP+携帯電話用Javaスレッド part 9 (928)
【魔法】リリカル☆Lisp【言語】 (212)
くだすれDelphi(超初心者用)その54 (902)
C#は糞2.0 (802)
【モダン推奨】Perlについての質問箱 50箱目 (361)

プログラミング言語 Scala 8冊目


1 :2012/04/21 〜 最終レス :2012/11/02
The Scala Programming Language
ttp://www.scala-lang.org/
日本Scalaユーザーズグループ
ttp://jp.scala-users.org/
■前スレ
プログラミング言語 Scala 7冊目
ttp://toro.2ch.net/test/read.cgi/tech/1315134454/
■Scalaの紹介文(さわり)
Scalaは簡潔かつ優雅で型安全な方法でよくあるプログラミングパターンを表現できるように
設計された汎用プログラミング言語です。
Scalaはオブジェクト指向と関数型言語の特徴をスムーズに統合しておりJavaやその他の言語を扱う
プログラマをより生産的にすることができます。(以下略)
ttp://www.scala-lang.org/node/25
■Scalaに関する書籍(英語)
ttp://www.scala-lang.org/node/959
リファレンスマニュアルや草稿のPDFなども充実しているのでそちらも参照してください。
日本語の資料には、チュートリアルの訳やIBM dW、IT Pro, @ITの連載記事、各々で開かれた勉強会の資料などがあります。

2 :
>>1


3 :
>>1おつおつ

4 :
Windows7 Professional + Cygwin + TeraTerm 4.72 の環境で
Scala REPL を楽しみ始めました。
なんとか UTF-8 で漢字も使えるし、上矢印キーで前回入力時の
文字列を再度使ったり、TABキーでメソッド補間もできる(jlineが
動いている)ようになりました。
ただ、前回入力時の文字列を再表示させてカーソルキーで修正しようと
するときに全角文字の位置ではカーソル位置が半角文字のように動作し
ます。これは、java の jlineが日本語に完全対応でないこととして
あきらめるべきなんでしょうか。
scala REPL 起動時は、
$ scala
Welcome to Scala version 2.9.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_03).
Type in expressions to have them evaluated.
Type :help for more information.
と表示されます。

5 :
関係ないかもしれないけど
rlwrap
http://hitai.blog72.fc2.com/blog-entry-78.html
cygwin?
http://sites.google.com/site/genyamaguchi0/scala-1
諦めてvmplayer&lubuntuとか

6 :
>> 5
ありがとうございます。rlwrap を使う前に jline をoffにする方法が
私には難しそうです。-Xnojline で :silent と同じ状態になりエコー
バックしないのです。
また、jline も別途バージョンアップ継続中(jline2)らしいので、
今後に期待し、現状のままで使ってみます。
Cygwin 上の scala REPL で UTF-8 が使えてるので、scala REPL 内で
"ls"等を呼び出して Windows7 のファイルを簡単に処理できそうです。
Windows7 の日本語ファイル名は UTF-8 ですから。

7 :
一応、こんな感じで正常に動作してます。上矢印キーで前回入力行が
出てもいます(カーソル位置が半角判断になるだけで)。
scala> val 歌 = "咲いた咲いたチューリップの"
歌: java.lang.String = 咲いた咲いたチューリップの
scala> 歌.
+ asInstanceOf charAt
codePointAt codePointBefore codePointCount
compareTo compareToIgnoreCase concat
contains contentEquals endsWith
equalsIgnoreCase getBytes getChars
indexOf intern isEmpty
isInstanceOf lastIndexOf length
matches offsetByCodePoints regionMatches
replace replaceAll replaceFirst
split startsWith subSequence
substring toCharArray toLowerCase
toString toUpperCase trim
scala> 歌.matches(".*チューリップ.*")
res2: Boolean = true

8 :
CygwinでScalaやっている人って意外と多いな。
普通にWindows上でやるのと比べてどういうメリットがあるのだろう?
あと VirtualBoxとかでLinux立ち上げて、そこでScalaやるのじゃだめなの?

9 :
ckwとnyaosという手もある

10 :
>> 8
6 です。
VMPlayerでLinuxも使ってます。けど、エクセル等のMS-Officeでの作業をし
なきゃならない時に、CSVファイルにして、さくっと Cygwin で Linux 的に
終わらせる、のが第1の目的です。日本語ファイル名で苦労するのは嫌なの
です。Scala だとXMLファイルの処理が簡単にできそうで楽しみです。
Windowsアプリ間のファイル形式変換ツールが簡単に作れそう。

11 :
>>8
普段Cygwinを使ってるからそれに加えてちょっとしたスクリプトにScalaも使ってる。
Scala単体で使うなら別にCygwinはなくてもいいし、Eclipseたちあげて大物書くときも
Cygwinなくてもなんとかなる。
メリットっていってもgrepやsedと組み合わせられるとか/dev/や/procで
Windowsのクリップボードやプロセスと連携できるくらいかな。

12 :
コマンド群が使いたいだけならckwとnyaosで、Unxutils落としてきてパスを通しておくというてもあるでよ!

13 :
大事なことだから2回言いました

14 :
>>12
単純に、Windowsでは、コマンドラインが使いづらいってだけだったら、nyaosで十分解決するよね。
だけど、Cygwin使う人は、やっぱり、それなりのUnix環境がほしい人なんだろうかな、って思って。
ただ、数年前と比べると最近はCygwinを使っている人は減ったみたいで、
仮想環境にLinux入れてやるって人が最近増えてきているみたい。

15 :
>>14
同じ意見です。Scala REPL なら Cygwin, コンパイル後実行なら仮想環境
かなぁ。それに、Scala REPL を高機能関数電卓としても使ってます。
仮想環境の場合、ゲストである仮想環境内とホストのWindowsの間の
ファイルのやり取りがめんどくさい。


16 :
そういう時はHost onlyの仮想ethアダプタを用意してWindows共有フォルダをマウントしてるな。
最近のUbuntuはUser level file systemのGVFSが最初から動いてるから、
Nautilusからネットワークを表示>対象のフォルダを選択しただけで、$HOME/.gvfs下にマウントされるし
デプロイとかの仕組みが不要な場合はこれで事足りる。

17 :
Scala 勉強中です。
super class の default でない constructor を呼び出すのはどうしたらいいですか?
Y の this(a: Int, b:Int) を定義したいです。
class X (val i: Int) {
def this(a: Int, b: Int) = this(a * b + 10)
}
class Y (override val i: Int) extends X(i) {
def this(a: Int, b: Int) = super(a, b) // コンパイルエラー
}
println(new Y(2, 3).i) // 16 になるようにしたい

18 :
本当にやりたい事がthisコンストラクタを使って実現すべき事なのかどうかが
疑問だけど(設計が悪いんじゃないかしらということ)
計算自体を分離するなりすれば良いだけじゃないの?
object X {
def calc(a: Int, b: Int) = a * b + 10
}
class X (val i: Int) {
import X.calc
def this(a: Int, b: Int) = this(X.calc(a, b))
}
class Y (override val i: Int) extends X(i) {
import X.calc
def this(a: Int, b: Int) = this(X.calc(a, b))
}

19 :
class X(a: Int, b: Int) {
val i = a * b + 10
}
class Y(a: Int, b: Int) extends X(a, b)
scala> new Y(2, 3).i
res0: Int = 16

20 :
>>18, 19
ありがとう。
実際には scala 標準ライブラリのクラス (具体的には scala.collection.mutable.BitSet) に機能を追加したい。
protected なメンバにアクセスする必要があるので継承して子クラスを作るといいのかな、と。で、親クラスに 3 つあるコンストラクタを子クラスでもそのまま使いたいというシチュエーションです。
と思ったんだけど、 trait 作って new BitSet() with TraitA みたいにするのがいいのかな?その場合 companion object (BitSet) によるインスタンス生成時に trait くっつけることできないですよね。。

21 :
ライブラリなど既存のコードへの機能追加するときの有益な手法として
「Pimp my Library」パターンというものがあります。
つづきはWebで

22 :
"pimp"というスラングはもともと「Rの斡旋人。R婦に依存して生活する男。」
へぇー

23 :
>>21
ググル先生に聞いて来ました。 RichInt とかのあれだったんですね。
Pimp my Library pattern, protected なメンバにアクセスできる?

24 :
case class について質問です。
case class X(x: Int)の実体X(1)は、参照数が0になってもGCが走るまでの間
は存続していると考えていいのでしょうか?
既にどこからも参照されていないX(1)を再び生成しようとした際、GCに消され
ていなければ実体生成コストを省けるのか?という点が知りたいです。
想定している状況は、自己再帰関数内で case class X への map を行うけど、
条件にmatchしなければ作ったX(_)を捨てて、次の再帰関数呼出時にまた作り
直すといったもので、キャッシュされていると嬉しいなと思ったのです。
(そもそも小さいインスタンスを大量生成してもコストは軽微だという話はど
こかで読んだ気がしますが。)

25 :
Memoizeしようという話か?

26 :
>>24
実体はGCが走るまで存続してるけど、再利用はされないよ。
そういうしくみはないし、たとえあってもペイしない。

27 :
>>26
Javaのプリミティブラッパーはキャッシュしてるし
登場頻度や生成量やGC/エスケープ解析の具合いによってはペイしないとも言い切れない

28 :
とりあえずなんでもかんでもcase classにしてしまう病を発症してるわ

29 :
自分でキャッシュしとけ

30 :
キャッシュでくれ

31 :
ほえ?
欲しいです!でもお金ないです!

32 :
つセコム

33 :
いま気づいたんだけど、REPLって前の実行結果(res*)が次の実行へ繋がってるんだね。
scala> List(1,2,3)
res1: List[Int] = List(1, 2, 3)
scala> .length
res2: Int = 3
地味に便利かも

34 :
>>11
あと、Cygwin のメリットとしては
A. Windows から直接 Cygwin 内の emacs が使える。Windows の
NotePad や WordPad は嫌だから。ファイル指定に cygpath コマンド使うのがコツ。
B. 仮想環境じゃないから Cygwin で作った OpenGL のプログラムが
高速表示可能。Scala だと、JOGL を Scala から使えるはず。
REPL から JOGL とかインタラクティブで面白そうだけど試したことない。
まあ、人それぞれかと。

35 :
僕はLWJGLちゃん!

36 :
>>35 情報ありがとう。
LWJGL は Nightly builds の lwjgl-2.8.4 なら Scala + 64bit JVM で
正常に動作した。Windows Professional 64bit だと 32bit JVM でも
2.8.3 は動作しなかった。情報ありがとう。lwjgl_test.jar のインベー
ダーゲームに感動したw (Java or Scala でもスピード出るね)


37 :
REPLでGUIってEDTで死ぬとばっかり思って試してなかった

38 :
lwjglお試しならgiter8でお手軽かんたんにできます
さんきゅーNicol (洞窟物語まだクリアしてないや

39 :
2.9.2にしてから,スクリプトでエラーになると操作不能,プロンプトが表示され
ないって状態になる時がある.
windows 64bit + cygwin(mintty) + scala 2.9.2

40 :
どうせ cygwin(mintty) のバグだろ

41 :
Scalaくん、最近使ってないんだけど調子どう?
何か新しい話はある?

42 :
4 です。
>>39
たぶん、scala コマンドの -echo が効いたままになってしまうから
だと思います。Scala の scala コマンドは単なるシェルなので、
内容を読むことができます。
読むとCygwin は特別待遇であることがわかります。
環境が Cygwin だと認識すると, cygpath を利用したかなり
丁寧な対応を行ってます。その中の
stty -i canon -min 1 -echo
が原因かと。REPLではこうしないと端末のコールバックと重なる。
私は Cygwin + TeraTerm ですが、残りの環境はたぶん同じです。

43 :
>>41
新しい話ではないかもですが、
この週末 scala-2.9.2 での UTF-8 におけるカーソル動作を
調べてました。自分用程度なら、jlineのコード修正で UTF-8 へ
の対応(全角文字でのカーソル移動正常化)はできそう。
jline(jline2がscala-2.9.2には使われてます)の UTF-8 への
完全対応は、Jruby,Jython,Scala とどの REPL でも必要とされ
てるようで、既に取り掛かっていると思われます。
サロゲート(Javaのみ)と文字幅(Unicode共通)が課題です。
既に xterm や emacs は解決してるので、できる方ならそれらを
参考にすればすぐかも。
近いうちに、JVM + UTF-8 での REPL が各国で普通になると推測。

44 :
43です。>>43 のサロゲートはJavaの内部コードである UTF-16 の話。
ちなみに、emacs shell内なら(emacs term ではない)
現時点でも Scala REPL は UTF-8 を正しく操作できます。
環境変数 TERM が異なるため jline を使わないから。
ただ、jlineを使っていないので、TAB補間や矢印での履歴
再表示は不可能。

45 :
>>8
今になって気づきましたが、Cygwin 内の emacs のかな漢変換は
Windowsの機能をそのまま使います。つまり Ctrl-\ で Windows
のかな漢変換機能と辞書が使えるわけです。最初気付かず、いつ
もは自分で登録する特殊な人名があっさり変換されるので不思議に
思ってましたw まあ、これも Cygwin の利点かと。

46 :
>>43,44
ここにきてえらい地味〜な話をもってきたね(笑)
半年ぶり(?)くらいで使ったら、ぜんぜん覚えてなくて一苦労だった。
ところで、コマンドラインで、
scala> Double.[TAB]
とかやって、出てくるメソッドに使えないものが入ってるんだけど何でだっけ?
java.lang.Doubleのメソッドとごっちゃになってるの?

47 :
>>46
あと、相変わらずコンパイル遅いのは閉口する。
ネイティブコンパイラまだかね。

48 :
>>47
ネイティブコンパイラって、ソースコードがScalaで書かれてる
コンパイラって意味?
javaコマンド(JVM)を使わずにclassファイルを作るコンパイラ
の意味??
OSでのネイティブコードを吐くコンパイラの意味???

49 :
>>43
今、Jline2に力を入れてるのは readline に Jline2 を使ってる
Jruby のメンバーらしい。Scala は REPL の部分のみに Jline2 を
使うだけなので Jline2 の進歩を待つ方がいいかも。

50 :
>>46
の候補の話なのですが、たとえば
Double.longBitsToDouble(Long)
のことです。
scalaのドキュメントみても、そんなメソッドないし
java.lang.Double.(...)
で使うのが正しいのでしょうか?

51 :
>>48
うーん、本当に速いならどっちでもいいけどJVMは欲しいかな。
いま現状で最も速いのはfscなんですか?

52 :
sbt使えよ

53 :
REPLでcase classを入れ子にしてTreeつくって遊んでたら
toString()がNode,Leaf全部辿って文字列返してくれようとしてて
heap食い尽くしてた、よくばりさんめ

54 :
>>51
スクリプト言語でもよくネイティブコンパイルっていう人がいるが
ネイティブかどうかそれ自体は基本的に速度に影響ないぞ。

55 :
GCJがポシャッた経緯とか知らないんだろうな

56 :
Scalaを使う人の呼び方を調べたのですが定番がないようです。
子音で終わればerを付けるだけですが、aで終わるからそうは行きません。
Scalalianという提案も見かけましたが、
AustralianはAustra人ではなくAustralia人です。
そこでaで終わる国の人を何と言うのか調べてみました。
America   → American   (アメリカ人)
Australia  → Australian  (オーストラリア人)
Cuba     → Cuban      (キューバ人)
Guatemala → Guatemalan  (グアテマラ人)
Scalaを使う人はScalanと呼ぶ事にしませんか?

57 :
スカラ←◎
カルト教団御用達(あいつらどうなったんだろ?

58 :
>>56
Mohicanでいいよ

59 :
>>43 で地味なこと書いた43ですw
とりあえず「自分用」としては、全角カーソル問題は
jline2 の修正で解決できました。
入出力とも UTF-8 限定ですが、
A) ノートパソコン
Windows 7 Professional (64bit) +
CygwinCYGWIN_NT-6.1-WOW64 1.7.1 + Tera Term 4.72
B) 同じノートパソコンから SSH で遠隔ログイン
UBUNTU(Linux 2.6.16-76.55vl4) + Tera Term 4.72
A),B) とも修正前の jline.jar では全角文字が
半角単位で重なったりカーソル位置と文字位置が
一致しなかったりしていました。
修正後の jline.jar では今のところ正常。
日本語が REPL でストレスなく使えるのでかなり嬉しい。
ただ、やっつけの修正でしかないので、詳しい方が多そうな
ところで報告してみます
(既に正式な修正や予定があるよ、とかの情報がありそう)。

60 :
リストがソート済みかって判断しようとして詰まった・・・

61 :
val list = List(....)
list.sorted == list

62 :
なんか関数型の練習問題みたいだけど
@scala.annotation.tailrec
def presorted[T: Ordering](xs: List[T]): Boolean = xs match {
case Nil => true
case x :: Nil => true
case x :: y :: ys => implicitly[Ordering[T]].lt(x, y) && presorted(y :: ys)
}
短いのは誰かまかせた

63 :
scala> List(1,2,3,3).sliding(2).find(x => x(1) < x(0)).isDefined.unary_!
res1: Boolean = true
scala> List(1,2,3,3,2).sliding(2).find(x => x(1) < x(0)).isDefined.unary_!
res2: Boolean = false

64 :
>>63 長さ0or1のリストに対する考慮洩れをfix
scala> List[Int]().sliding(2).filter(_.length > 1).find(x => x(1) < x(0)).isDefined.unary_!
res3: Boolean = true
scala> List[Int](1).sliding(2).filter(_.length > 1).find(x => x(1) < x(0)).isDefined.unary_!
res4: Boolean = true
scala> List[Int](1,2,3).sliding(2).filter(_.length > 1).find(x => x(1) < x(0)).isDefined.unary_!
res5: Boolean = true
scala> List[Int](1,2,3,3).sliding(2).filter(_.length > 1).find(x => x(1) < x(0)).isDefined.unary_!
res6: Boolean = true
scala> List[Int](1,2,3,2,3).sliding(2).filter(_.length > 1).find(x => x(1) < x(0)).isDefined.unary_!
res7: Boolean = false

65 :
関数化したもの
def presorted[T: Ordering](xs: Seq[T]): Boolean =
!xs.sliding(2).filter(_.length > 1).find(x => implicitly[Ordering[T]].lt(x(1), x(0))).isDefined

66 :
60
返答サンクス.できなくはないんだけどぱっとできなくない?


67 :
日本語でおk
エスパー回答すると、>>65の解法は全ての要素を辿るわけではなくて、
大小関係を満たしていない組が見つかったらそこで計算を打ち切るから
速度面での心配はない。
slidingはIteratorを返すのだけどIteratorについての理解はもちろん済ませての質問ですよね。

68 :
違うな、>>66 の暗号は「ぱっと(parと)できなくない?」と解読できる
つまり…並列処理コレクションで高速に問題が解けないかということを問うているんだよ!
ΩΩΩ<な、なんだってー!!

69 :
Finagleハッカソン〜Twitterを支える基盤技術をみんなでハッキングする会〜第一部 - ニコニコ生放送
http://live.nicovideo.jp/watch/lv93012184
Finagleハッカソン〜Twitterを支える基盤技術をみんなでハッキングする会〜第二部 - ニコニコ生放送
http://live.nicovideo.jp/watch/lv93393157

なにこれ、ちゃんと見て楽しいものになるの?
まさかプログラミングしてる風景を垂れ流すだけじゃないよね…?

70 :
>>69 隣の家からご飯借りて来い

71 :
それママカリ

72 :
>>66
俺が最初にぱっとしたやつ書いたじゃん

73 :
んなクソ遅いコード使い物にならん

74 :
おいおいニコ生中止かよ
どんだけチキンハートなんだよ
晒される覚悟がないやつはScala使うなよ

75 :
ustはするみたいだぞ

76 :
そんな頭の悪い一年生議員が吐くような安い野次じゃマサカリは飛んで来ないな(嘲笑

77 :
なんでScalaの標準ライブラリにはbinarySearchが無いの?
いや、Javaのを使えばいいのは判るんだけど、
敢えてScalaに入れていないのは何か狙いというかポリシーがあるんじゃないかと思う。
binary searchって関数言語的に美しくないとか?
でも、ポリシーの美しさにこだわって実用性を捨てるのはどうよ?

78 :
ScalaとJavaどっちから勉強するべきか教えてください

79 :
うわぁこれニコ生中止して正解だわ
15人くらいしか見てねえし
Scala知らないやつ多すぎ
言語知らないやつがFinagleで何作るんだよ
何も準備しないでこういうのに参加するやつなんなのまじで

80 :
>>77
実用的にも普通はMap使うんじゃね

81 :
>>77
まだソート絡みの課題が終わらないのかい?かわいそうに...

82 :
そーっとしておいてやろうぜ?

83 :
ソートー苦労してそうだ

84 :
>>81
そういうつながりだったのか
おまえよく気付いたな

85 :
>>80
Map遅えしメモリ食うだろ。
そもそも、sorted arrayを標準ライブラリに入れないセンスはいくらなんでも変だぞ、
とゆー、ポリシーの話。
ついでに言えば、なんで標準のPriorityQueueにはdecreaseKey操作が無いんだよ。
どういうセンスなんだ?

86 :
そんなもの欲しがるのはお前だけなんだって
常にソートされている状態が必要なら、生成時に最初からソートされた値を使うし
後から要素を追加されてもソートされている状態が必要なら Map, Tree を使う
仕様も決めないでコード書こうとしているからそんな下らないところでグダグダ悩むんだよ

87 :
ぼくのかんがえたさいきょうのコンテナ(笑)

88 :
>>86
ArrayにbinarySearchや、PriorityQueueにdecreaseKeyがあるのが
普通だと思えない感覚の持ち主だとしたら、
まず、初歩的な修行として著名なOSやコンパイラのコードを10万行ぐらい読んだ方がいい。

89 :
10万行って少なくね?

90 :
>>89
うん。まあ、初心者向けにはいいんじゃね?

91 :
Cしか知らないやつが一気に背伸びしてScala覚えた感がすごい

92 :
Scalaって背伸びして覚えるようなもんか?

93 :
なんでbinarySearchぐらいで、ぐだぐだ言われてるのか理解出来ない。

94 :
ScalaよりCの方が遥かに難しいだろ。ただし、言語の外まで含めればの話。
もちろん、言語仕様内ではScalaの難易度はCの100倍だ。
Scalaは選ばれた天才のみが触れることを許される試行の言語。
まあ、>>78はScalaは百年早いからJavaを触るべきってこった。

95 :
言語外まで含めてもCのほうが簡単だと思うが
C++ならまだしも
Scala使うならJavaまで精通していなきゃいけないから

96 :
>>88みたいに漠然としたことを言っちゃう奴は大抵自分もろくすっぽ読んでない

97 :
Javaしか知らないやつが一気に背伸びしてScala覚えた感がすごい
うん、どこかで聞いたフレーズかと思ったら、これだった。

98 :
Mapは遅くてメモリ使うから使わない
binarySearchを入れないのはScalaのポリシーがおかしい

普通だと思えない感覚の持ち主だとしたら、
まず、初歩的な修行として著名なOSやコンパイラのコードを10万行ぐらい読んだ方がいい。

背伸びしてる感すごいでしょ

99 :
デタラメ言い放つの流行ってるの?

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
MVVMについて語ろう (384)
【.cmd】 バッチファイルスクリプト %9 【.bat】 (300)
小学生プログラマだけど質問ある (236)
NullPointerExceptionを「ぬるぽ」と呼ぶスレ6 (378)
【Delphi互換!?】FreePascal/Lazarus その2【GPL】 (288)
Gtkプログラミング on Windows!!! (343)
--log9.info------------------
【EoE】End of Eternity -エンドオブエタニティ-088【RoF】 (263)
ヴァルキリープロファイル総合 Chapter149 (404)
【Xbox360】Fallout3 フォールアウト3 Vault238 (753)
デジモンワールド総合 繁栄度24 (605)
【PS3】ダーククエスト〜Alliance〜 Act2 (942)
【DQ10】僧侶専用スレ回復+41【Wii】 (641)
【DQ10】あの子に恋しちゃった☆5話目【恋の悩み】 (649)
【DQ10】魔法使い専用スレ魔力+42【Wii】 (258)
【DQ10】酒場相互補完会(互助会)告知スレ (620)
【DQ10】サービス開始一ヶ月経つのにいまだにフレいない奴www (467)
【DQ10】 ハウジングシステム 13丁目 (916)
【DQ10】ふじさわDについて語るスレ【運営】 (915)
【DQX】棍棒PT募集スレ2【にちりん・棍】 (545)
【DQ10】大盗賊PT募集スレ きようさ 34【ぬすみ特化】 (747)
【DQ10】ランプ錬金職人専用スレ ★19 (856)
FINAL FANTASY Versus XIII-ヴェルサス-No.108 (957)
--log55.com------------------
コリン性蕁麻疹
掌蹠膿疱症その11
食生活と生活習慣による花粉症対策 Part.3
【耳掻きし過ぎて】耳の痒み専用スレ【ミミガー】
花粉症のマスク その2
花粉症で咳が止まらない人の数→
花粉は公害!国を相手に訴訟を起こそう!
アレロックと花粉症