コグノスケ


link 未来から過去へ表示  link 過去から未来へ表示(*)

link もっと前
2013年11月25日 >>> 2013年12月8日
link もっと後

2013年11月27日

Scala ArrayBufferのイテレータ

最近Scalaにチャレンジしていますが、イテレータの動きがよくわかりません。

Scala Documentation(リンク)にはtake(n) でイテレータがn要素先に進む、という記述があるのですが、ArrayBufferのイテレータはそうなっていません。たぶん。

下記のコードを使って確かめました。7要素持っているバッファから、2要素、3要素、4要素、とtake(n) していくコードです。val it4 = take(4) は4要素取ろうとしますが、要素が足りず2要素しか取れないことを期待しています。

テストコード

val a = scala.collection.mutable.XXXXXX(0, 1, 2, 3, 4, 5, 6)

val it = a.iterator
val it2 = it.take(2)
val it3 = it.take(3)
val it4 = it.take(4) //実際には2要素しか取れないはず

it2.toList
it3.toList
it4.toList
it.toList

まずはXXXXXXの部分をListBufferにします。結果は期待通りです。

ListBufferのイテレータ
Welcome to Scala version 2.9.2 (OpenJDK Client VM, Java 1.7.0_25).
Type in expressions to have them evaluated.
Type :help for more information.

scala> val a = scala.collection.mutable.ListBuffer(0, 1, 2, 3, 4, 5, 6)
a: scala.collection.mutable.ListBuffer[Int] = ListBuffer(0, 1, 2, 3, 4, 5, 6)


scala> val it = a.iterator
it: Iterator[Int] = non-empty iterator

scala> val it2 = it.take(2)
it2: Iterator[Int] = non-empty iterator

scala> val it3 = it.take(3)
it3: Iterator[Int] = non-empty iterator

scala> val it4 = it.take(4)
it4: Iterator[Int] = non-empty iterator


scala> it2.toList
res0: List[Int] = List(0, 1)

scala> it3.toList
res1: List[Int] = List(2, 3, 4)

scala> it4.toList
res2: List[Int] = List(5, 6)

scala> it.toList
res3: List[Int] = List()

次にXXXXXXの部分をArrayBufferにします。take(n) 自体は成功しますが、イテレータは進まずに常に先頭の要素を指すイテレータが返されてしまいます。

ArrayBufferのイテレータ
Welcome to Scala version 2.9.2 (OpenJDK Client VM, Java 1.7.0_25).
Type in expressions to have them evaluated.
Type :help for more information.

scala> val a = scala.collection.mutable.ArrayBuffer(0, 1, 2, 3, 4, 5, 6)
a: scala.collection.mutable.Buffer[Int] = ArrayBuffer(0, 1, 2, 3, 4, 5, 6)


scala> val it = a.iterator
it: Iterator[Int] = non-empty iterator

scala> val it2 = it.take(2)
it2: Iterator[Int] = non-empty iterator

scala> val it3 = it.take(3)
it3: Iterator[Int] = non-empty iterator

scala> val it4 = it.take(4)
it4: Iterator[Int] = non-empty iterator


scala> it2.toList
res0: List[Int] = List(0, 1)

scala> it3.toList
res1: List[Int] = List(0, 1, 2)

scala> it4.toList
res2: List[Int] = List(0, 1, 2, 3)

scala> it.toList
res3: List[Int] = List(0, 1, 2, 3, 4, 5, 6)

IteratorのScala-doc(リンク)を見ると「take呼んだ後のイテレータは再利用すんなボケナス(意訳)」って書いてあるように読めます。

じゃあイテレータを再利用して良いのはどういう場合?next() だけ?不便だなあ…。

編集者:すずき(2013/11/27 20:04)

コメント一覧

  • よしださん(2013/12/02 01:49)
    Scalaどうですか?
    Javaほとんどやったことない&コンパイルが必要(?)ということで敷居が高そうというイメージがあって手をだせていません。
  • すずきさん(2013/12/02 03:16)
    >よしださん
    関数言語+オブジェクト指向、という方向は好きですが、使いこなせていないです。
    特に関数型言語の部分は馴染みがなくて使うのがキツイので、無視してBetter Javaとして使ってます。

    開発環境はIntelliJ IDEA&Scala Pluginを使いましたが、コンパイル環境の設定が良くわかりません…。
    GUIの開発環境が不要なら、Ant(makeのJava版)からもコンパイル可能です。今はAntよりMavenという話も聞きますが、使ったことないのでなんとも言えないです。

    Rubyのirb的な対話環境もあるので、ちょっと試すならそちらの方が良いです。Linuxならyumとかaptとかで簡単に入れられるはず。
  • よしださん(2013/12/03 01:10)
    2年前にコップ本を読んで勉強しようとするも挫折した記憶がよみがえります。
    なんかいい題材があればいいのだけど。
    とりあえずapt-getしてみます。ありがとう!

    やっぱり val いっぱい使わないとメリットがでなかったりするのかしらね。
  • すずきさん(2013/12/03 03:39)
    >よしださん
    私も 1冊目にオライリー「プログラミングScala」を選んでしまって、やっちまった感が満載です。
    今からさらにコップ本を読む気が起きません…。

    >なんかいい題材があればいいのだけど。
    Rubyから移植してみるのはどうでしょう?

    >やっぱり val いっぱい使わないとメリットがでなかったりするのかしらね。
    うーん、頑張ったら速くなるかもしれませんが…。この手の言語や、スクリプト言語に性能は期待してないです。
    とりあえず快適&簡潔に書ければそれで良しです。
open/close この記事にコメントする



2013年11月28日

マイ・ウェイ

普段、音楽は聴かないですが、気に入った曲があるとヘビーローテーション(気に入った一曲だけ、半日ループx 1週間)します。最近はMy Wayがローテーション中です。

古い歌だからかYouTubeにてGoogleさんに消されることなく、いろいろな動画が残っています。元祖Frank SinatraさんのちょっとクセのあるMy Wayも、尾崎紀世彦さんのスッキリとしたMy Wayも、素敵ですね。

英語歌詞をチラ見したら、全く意味がわからなくてビビったので、ちょっくら訳してみました。

…と、軽い気持ちで始めたところ、意味が分からん部分が多すぎて、めちゃくちゃ時間かかるわ、無理やり訳したから和訳も意味不明になるわで、俺、真夜中に何してんだろ?てな状態でした。

多分に致命的な間違い(意味が逆になっているとか、係る語や文節が間違ってるとか)があると思うので、コメントにてぜひ教えてください…。

Frank Sinatra - My Way
And now, the end is near
今、終わりは近い
And so I face the final curtain
そう、私は死の間際にある(curtain: 間際(死の)?)
My friend, I'll say it clear
友よ、これは明らかに言える(itは死を指す?)
I'll state my case, of which I'm certain
私自身のことを、確信をもって言える(可能のwill?)
I've lived a life that's full
充実した人生を送ってきた
I traveled each and ev'ry highway
ありとあらゆる道をひたすら歩いてきた(highway: 目的に直通する道の意味?)
And more, much more than this, I did it my way
そう、だがそれ以上に、自分の道を来たんだ

Regrets, I've had a few
後悔がないといえば嘘になる(肯定的に訳すと、後悔は少しだけしている、になるが変な感じ…)
But then again, too few to mention
だがそう言っても、後悔の話なんてほとんどしない
I did what I had to do, I saw it through without exemption
やるべきことはやったし、もれなくやり遂げた(see it through: やり遂げる?)
I planned each charted course, each careful step along the byway
進むべき道について、慎重に脇道に沿って進むように、計画した
(意味わからんな、each〜 は両方plannedにかかってるのか?)
And more, much more than this, I did it my way
だが、それ以上に、自分のやり方で来たんだ

Yes, there were times, I'm sure you knew
When I bit off more than I could chew
そう、無理をしたときもあった、君も知っているはずだ(bite off more than one can chew: 背伸びする)
But through it all, when there was doubt
I ate it up and spit it out
不安があったときでも、最後まで何が何でもやりきった(ate it up and spit it out: 食いつくし、吐き出した)
I faced it all and I stood tall and did it my way
全てに立ち向かった、断固とした態度で、信じた道を来たんだ(stand tall: 断固とした態度を取る)

I've loved, I've laughed and cried
愛して、笑って、そして泣いたときもあった
I've had my fill, my share of losing
満たされたこともあった、失うこともあった(one's fill: たらふく、十分なほど)
And now, as tears subside, I find it all so amusing
そして泣き止んだら、そんな(つらい)ことも皆、楽しんでいたと気づく(tears subside: 涙がどこかに行く?)
To think I did all that
(今まで)やり遂げてきたことを思えば、
And may I say, not in a shy way,
私はひるむことなく、こう言うだろう(shy way from〜: ひるむ、尻込みする?)
"Oh, no, oh, no, not me, I did it my way"
「いやいや、私はいいんだ、信じた道をやり遂げたんだ」(not meって何?意味わからん…)

For what is a man, what has he got?
どんな人として、何を得てきただろう?(意味わからん…)
If not himself, then he has naught
To say the things he truly feels and not the words of one who kneels
その人自身でなければ、その人の
懺悔の言葉も、本当の想いも言うことは叶わない(kneels: ひざまずく→懺悔orお祈り?)
The record shows I took the blows and did it my way!
証拠は私がぶちのめし、やり遂げたこと(=困難?)を示している(意味わからん…、blow: 強打?)

Yes, it was my way
それこそが、私の生きた道

何が悲しいって、数時間かかって訳したのに、和訳開始10分くらいで掴んだ理解「そろそろお迎えが来るよ、色々あったけどさ、悔いのない人生だったね。うん。」から、私の理解が大きく変わることがなかった、ってことですよ。ほんと残念。

編集者:すずき(2014/11/27 23:47)

コメント一覧

  • ゆあうぇいさん(2014/11/27 22:19)
    訳しっぷりに感動しました(;;)
    綺麗事にしてしまっている日本語の歌詞は吐き出したくなります。
  • すずきさん(2014/11/27 23:51)
    >ゆあうぇいさん
    ありがとうございます。
    意味が分からないところだらけですが、少しでも参考になれば幸いです。
  • ゆあうぇいさん(2014/11/28 22:46)
    >すずきさん
    すまし顔の結論より、もがいているプロセスのほうが参考になるものです(ー_; すずきさんの訳す姿勢に共感も覚えました。
    シナトラの歌うこの歌「あいでぃりっ、まーいうぇーい」という部分しか覚えてなく、なんか健康優良児が前向きに頑張りましたみたいな話かとおもいきや。最近、自動車通勤の友CD第6版を焼いたときに(1番目に加山雄三の「海その愛」とか前向きな歌を入れたついでに)2番目に入れてローテーションしてましたら「あいえりっあっぷ、あん、すぴりらーっ!」とか聞こえて来て、おいおい凄い歌詞だよこれって。でも聞き取れない部分とか、聞き取れても意味わからん部分が多くて、ぐぐって此処に来た次第です。
    この歌は、英文法の教科書みたいな言い回しがあるかと思えば、感覚的に単語を羅列したみたいな意味不明部分があって、そこが面白いと思います。正解というのも無いと思いますが、よく出来た訳を見つけて、あっそう、となるより、謎のまま何度も聞いて歌って自分なりの解釈ができればいいかなと思っています。いえーす、いてぃーずまーいうぇい(^^)/
  • すずきさん(2014/12/02 01:29)
    >ゆあうぇいさん
    もがいている姿を隠し、すまし顔をするのがプロかなとは思いますが、プロではないのであえて晒しました。
    こんなんでも解釈の助けになれば嬉しいです。
  • ゆあうぇいさん(2014/12/04 23:18)
    >すずきさん

    書き忘れましたが、尾崎紀世彦も大好きなので、しばらく前にまた逢う日までをiTunesで買って聴いたのですが、レコード版は小さくまとまっちゃててどうにもいけませぬ。紅白の時に汗だくになりながら歌ってたVとか見ると、鳥肌が立つほどイイんですけどね。加山雄三も、最近テレビで特集してた中で海その愛が出てきたときに鳥肌立って買っちゃったんですが、レコード版はがっくりでした。録音技術のせいなのかもしれません。シナトラを生で聞いたらどんな感じだったんでしょうね。もらしたかも(笑)
    作ってるプロセスを晒すという意味では、まあ私もそんな感じで長い間やってました。ライブ感で高揚しますよね、そのうち麻痺しちゃいますが。若気の至りでした。
    ではでは。
  • yut シムズさん(2020/03/08 13:14)
    古い投稿に対して、申し訳ありません。
    不用なことかと思いましたが、気がついた事を書かせて下さい。
    final curtainは最終章(劇場の幕)
    itはsay it clear that 〜はっきり言う
    itはthat以下、つまりI liveとI travelの文を指していると考えます。
    each and everyは一つずつ、すべての(単数扱い)
    thisは今.歌で言った内容(シナトラが)
    my wayはここではin my wayと考えてとスタンと落ちます。歌詞2番のexemptionは控除かな?
  • yutさん(2020/03/08 13:16)
    古いので、見てもらえるか不明ですので、、、、
  • すずきさん(2020/03/08 17:39)
    ご指摘ありがとうございます。投稿の古さに関わらず、コメントはありがたく拝見させていただいています。

    なるほど、そういう意味なんですね。英語難しいなあと思う次第です。。。
open/close この記事にコメントする



2013年11月30日

私は「昭和世代」?

私はちょうど30歳で昭和生まれなので「昭和生まれのオッサンでー」などと冗談にすることはありますが、正直なところ、昭和に対し「懐かしい」とか「あのころは○○だった」という思いはないです。

昭和の方が良かったという意見は否定しません、しかし、同意もできません。私自身、昭和をほとんど覚えておらず、良かったのか悪かったのかがわからないからです。

数えたらわかりますが30代の生まれ年って昭和末期も良いところなんですよ。よく覚えているねってくらいギリギリです。

例えば、私を含む30代前半(30〜35歳)の人が昭和を生きた時間は6〜11年です。世の中に関心を持ったのが6歳だとしても、見聞きできるのは、精々、昭和末期の5年間です。

それほど幼く、覚えているかいないかギリギリの時代に対し「あのころは○○だった」と語ったり、一番親しみが沸いたりするのは、ちょいと珍しい部類じゃないかと思うわけですよ。

で、何が言いたいかというと、僕らは昭和生まれではありますが、どちらかというと「我ら昭和世代!」というより「我ら平成世代!」という方がしっくり来ますよね、ってことです。

今年もあと1か月

とまあ、こんなことを考えているうちに、今年もあと1か月。

無事30歳を迎えた、記念すべき2013年ももう終わりです。最近、時の流れが早いね。

編集者:すずき(2013/12/01 20:22)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2013年12月3日

オカルトとピュアオーディオの共通項

斜めにぶっ飛んだピュアオーディオ(笑)がオカルトじみて感じるのは、おそらくエセ科学の常套手段、

  • 1. 正しいと言い張るだけで、全く根拠を示さない
  • 2. 事例の列挙に留まり、妥当性の検証を他人(特に反論してくる人)へ転嫁する
  • 3. 他者が検証、再現不可能なことを根拠に見せかける

に当てはまっちゃっているから、オカルトと区別がつかないというか、オカルトと同類に見えてしまうのだと思います。

例を挙げると…、

1. は「アレとコレで音が良くなる。」で終わりだったり、何をもって「音が良い」とするか基準すらない、などのパターンです。

2. は「アレとコレで、ソレになるから、音が良くなる。」とあるのに「ソレと音が良くなる(悪い)の関連」が不明瞭です。
その点をツッコむと「音を聞けばわかる、お前も試せ」と逆切れするパターンです。

3. は全く同じ実験環境は二度と用意できない、自説に都合の良い結果だけ拾って見せびらかす、などです。

1. や2. は勘違いや、早とちりかもしれませんので、まだ話し合いの余地はありますが、 3. はミスリードを狙って、故意にやってると思われるので、
「目を合わせない」「話しかけない」「近寄らない」
が一番かもしれません…。

編集者:すずき(2013/12/04 02:47)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2013年11月25日 >>> 2013年12月8日
link もっと後

管理用メニュー

link 記事を新規作成

<2013>
<<<11>>>
-----12
3456789
10111213141516
17181920212223
24252627282930

最近のコメント5件

  • link 24年10月1日
    すずきさん (10/06 03:41)
    「xrdpで十分動作しているので、Wayl...」
  • link 24年10月1日
    hdkさん (10/03 19:05)
    「GNOMEをお使いでしたら今はWayla...」
  • link 24年10月1日
    すずきさん (10/03 10:12)
    「私は逆にVNCサーバーに繋ぐ使い方をした...」
  • link 24年10月1日
    hdkさん (10/03 08:30)
    「おー、面白いですね。xrdpはすでに立ち...」
  • link 14年6月13日
    2048player...さん (09/26 01:04)
    「最後に、この式を出すのに紙4枚(A4)も...」

最近の記事3件

  • link 24年10月31日
    すずき (11/04 15:17)
    「[DENSOの最終勤務日] 最終勤務日でした、入門カードや会社のPCを返却してきました。在籍期間はNSITEXE(品川のオフィ...」
  • link 22年7月8日
    すずき (11/02 20:34)
    「[マンガ紹介 - まとめリンク] 目次: マンガ紹介一覧が欲しくなったので作りました。5作品乙女ゲームの破滅フラグしかない悪役...」
  • link 24年10月30日
    すずき (11/02 20:33)
    「[マンガ紹介] 目次: マンガ紹介お気に入りのマンガ紹介シリーズ。最近完結した短めの作品を紹介します。マイナススキル持ち四人が...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www2.katsuster.net
RDFファイル RSS 1.0

最終更新: 11/04 15:17