ブロードヒューマンネットワーク社員ブログ群馬県太田市|Webシステム開発、ホームページ制作、エンジニアリングサービスを承ります。コメントこんにちは、ピーターです。パッケージ宣言が含まれているScalaファイルをScalaインタープリタで実行したいとします。Mineどちらで実行してもパッケージ宣言があるためにエラーになってしまいます。パッケージ宣言をコメントアウトすればエラーにならずに実行できますが、今回はREPL(対話モード)の:pasteコマンドを使った方法をご紹介します。scalaコマンドでREPLを起動します。REPLで:pasteコマンドを実行して貼り付けモードにします。パッケージ宣言を除いたコードを貼り付けます。コードの最後に空行がない場合は貼り付け後に空行を追加してください。ないと貼り付けモードを終了できないようです。Dで貼り付けモードを終了します。これでコードが読み込まれました。読み込まれただけではmainメソッドは呼ばれませんので、mainメソッドは自分で呼びます。Mine.main(null)55正常に実行できました。コメントこんにちは、ピーターです。「Scala関数型デザイン&プログラミング」という関数型プログラミングの入門書を読み始めまして、その中に練習問題がたくさん出てくるのですが、その最初の練習問題について書こうと思います。その問題はこちらです。n番目のフィボナッチ数を取得する再帰関数を記述せよ。最初の2つのフィボナッチ数は0と1である。n番目の数字は常に前の2つの数字の合計となる。再帰関数の定義では、ローカルな末尾再帰関数を使用すること。「ローカルな」というのは、関数の中に関数を定義するということです。末尾再帰というのは、呼び出し元が再帰呼び出しした結果の値を返す以外にはもう何もしないということです。再帰呼び出しした結果の値に+1して返すと末尾再帰ではなくなります。僕が考えたコードはこちらです。2)}nになるまで最初から2つの数字を足していく考え方です。1)}こちらはnが0になるまでデクリメントしながら2つの数字を足していき、0になったらそれまでの値を返しています。僕の方はforループ的な考え方なのですが、解答の方はより再帰的な考え方になっているのかなと思います。再帰的に考えられることで、こうしてシンプルなコードになるんだなと思いました。コメントこんにちは、ピーターです。最近はCSSをよく書いています。1280pxの幅のページに、500pxの画像を横に3つ並べたいとします。center;」したように中央に寄せる必要があるとします。これを実現するのは簡単です。-750px;}これだけです。–>は、img間の隙間をなくすためのものです。これだけでは中央に寄りませんので、1500pxのdivの左端を中央に合わせ、幅の半分をネガティブマージンとすることで中央に寄せています。この場合、1500pxに対してページ幅が1280pxなので、横スクロールバーが出てしまいます。横スクロールバーが出てもいい場合もあると思いますが、出したくない場合もあると思います。横スクロールバーを出さないようにするにはどうすればいいでしょうか。CSSのbackgroundプロパティを使ってみたらどうでしょうか。top;}これも横スクロールバーが出てしまいます。横スクロールバーが出る原因は、ページ幅を超えるwidth指定です。1500px;」を外します。中央に寄せたdivでなくても、背景画像を中央に表示するのは簡単です。top;}これで1枚の画像を中央に表示することができます。左右の画像はどうしたらいいでしょうか。background-positionプロパティは、位置を相対指定できます。10px;これで、左から5px、上から10pxとなります。これを使って、中央からの位置を指定すれば良さそうです。bottomからの位置は指定できるのですが、centerからの位置は指定できません。そこでcalc関数を使ってみます。top;}たしかにこれはうまくいきます。横スクロールバーも出ません。IEだけは、background-positionプロパティにcalc関数を使うとうまくいかないという問題があります。別の方法を考えてみます。インラインブロックを2つ横に並べることで、左のインラインブロックの右端と、右のインラインブロックの左端が中央の位置になります。このことを利用して、インラインブロックの右端または左端からの位置を指定した背景画像とすれば良さそうです。top;}これでうまくいきました。IEでも問題ありません。真ん中の画像は外側のdivの中央に表示しています。左の画像は右から250px、右の画像は左から250pxの位置とすることで、中央からの位置指定を行っています。最後のソースの全ソースと画像はこちらです。