Scalaの演算子(メソッド)・式 Scalaでは、数値(IntやLong、Double等)もクラスであり、それらに対する演算(演算子)はそのクラスのメソッドとして定義されている。 例えば「+」は「+」という名前のメソッドであり、「1+2」は「1.+(2)」と書くことも出来る。 (逆に、もしIntにplusというメソッドが定義されていたら、「1.plus(2)」や「1 plus 2」と書くことが出来る。ピリオドを使わない書き方を中置記法と言う) (メソッド呼び出しも含めた)各種の式の優先度は決まっている。 また、同優先度のメソッド同士では、メソッド名によって優先順位が変わる。 (四則演算には乗除算(*/)が加減算(+-)よりも優先度が高いといったルールがあるが、Scalaでは演算子はメソッドであり、メソッド名によって優先度が決まっている。 基本的にはメソッド名の先頭1文字によるが、末尾1文
前回紹介した方法(削除済み)だと、 [bash] [info] Building project Lift SBT Tempalte 0.1 against Scala 2.8.0 [info] using LiftProject with sbt 0.7.4 and Scala 2.7.7 [/bash] こういうメッセージが出てしまうと思います。 これは、Scala2.8.0が使えないで2.7.7を使いますよーということ。 いろいろと手を入れても、2.8.0対応のdependencyとかの問題だと思われますが・・・ さすがに設定が面倒くさい。 っということで、やっぱり、mavenでとりあえず対応する方法を! ※注意: 現在、sbtでの対応は、scala2.7.7を対象としています。 ■目次 mavenで『Liftの素』を取得 やっぱりEclipseで開発したい
Scalaでハッシュマップみたいなのを作るときにはMapというクラスを使うと良いみたい。 var map = Map("key1"->"val1", "key2"->"val2") で、Mapのコンストラクタに渡す値は「タプル」と呼ばれているのだそうだ。 この「タプル」というのが柔軟すぎてわけがわからなくなったので、忘れないようにメモしておく。 これ全部タプル var t1 = 1 -> 2 var t2 = ( 1, 2 ) var t3 = Tuple(1,2) var t4 = Tuple2(1,2) 「Tuple2」というのは、値を2つ持つタプルのことなのだと思う。値が3つになるとTuple3。 中途半端に型指定してコンパイルエラー Scalaは型指定しなくても、初期化された値によって変数の型が決まる。 var t1 = 1 -> 2 って書いたら、t1の型は自動的に「Tuple[
2010年2月15日月曜日 Scala Listクラスのメソッドを全部実行してみる Scalaではよく使われるListですが、とても便利なメソッドがたくさんあるにもかかわらず使い方がよく分からないものや、直感的に使えていないものが多いのでListクラスとオブジェクトのメソッドを使ってみることにしました。 Listクラスのメソッドの実行結果の一覧が便利だと思うので残しておきます。 ちなみに2.8はまだBetaであることとSimply Scalaが2.7.7なのでScala 2.7.7.final APIを基準にしています。 Scala Scala2.8で追加されたListのメソッドを実行してみるもどうぞ。 val list1 = List('a', 'b') list1: List[Char] = List(a, b) // + は省略 deprecated val list2 =
目次はこちら。 scalaのWebフレームワーク liftで遊ぶ 目次 - ゆろよろ日記 こんばんは、土井善晴です。 今日はね。Modelをやりますよー。 最近のフレームワークとおんなじでね、Liftでも簡単にCRUDが作れるんですよー。 ではやってみましょうかね。 を参考にやりますよー。 LiftでのORM LiftでのORMの特徴はこんな感じ。 テーブル操作を行うMetaMapperとモデルクラスを定義するKeyedMapperを作成すれば利用可能。 定義とMigrationが一元化されている。モデルクラスを定義すると、アプリケーション起動時に自動的にテーブルが作成・更新される。 CRUD操作メソッドやfinderメソッドは自動的に追加される。RailsのAR的なアプローチ モデルクラスに、formタグやtableタグなどのHTMLを出力するメソッドがある。 じゃじゃじゃじゃじゃじゃじ
世の中には手続き型言語、オブジェクト指向言語、関数型言語あたりがあるとして、どれがTDDに向いてるかというと、いや特に差異はないよねという話です。 それぞれのやり方で、「手続き」なり「オブジェクト」なり「関数」なりがパターン爆発しない大きさに収まる限り、ユニットテストのコードを書くことは現実的に可能だし、RED->GREEN(もしくはその逆も)の変化を観察することに対して、大きな違いがあると思ったことはない。穿った見方をすると、書籍としてオブジェクト指向の本が多いのは、オブジェクト指向言語のパラダイムが難しいことを説明してると考えることもできる。リスコフの置換原則は我々には早すぎた道具だったのだ!! まぁとりあえず、テスト性をよくすることで自然と高凝集かつ低結合なモジュール構成が出来上がったりします。ので、私が作る程度のプログラムでは、テスト可能な感じにまとめつつ、意図通りに変化しているこ
2. • ScalaAPI – 2.8 • http://www.scala- lang.org/archives/downloads/distrib/files/nightly/do cs/library/index.html – 2.7 • http://www.scala-lang.org/docu/files/api/index.html – sbazでローカルにダウンロード • > sbaz install scala-devel-docs – $SCALA_HOME/docs • ソースリポジトリ – http://www.scala-lang.org/node/213 – http://lampsvn.epfl.ch/trac/scala/browser/scala 3. • Java5以降に対応 • 余談:Java1.4を捨ててソースがすっきり。 – 例:String#fo
LL脳がコップ本を使ってScalaを学習していく記録です 第01章 スケーラブルな言語 第02章 Scalaプログラミングの第一歩 LL脳がscalaの勉強を始めたよ その1 LL脳がscalaの勉強を始めたよ その2 第03章 Scalaプログラミングの次の一歩 LL脳がscalaの勉強を始めたよ その3 LL脳がscalaの勉強を始めたよ その4 第04章 クラスとオブジェクト LL脳がscalaの勉強を始めたよ その5 LL脳がscalaの勉強を始めたよ その6 LL脳がscalaの勉強を始めたよ その7 第05章 基本型と演算子 LL脳がscalaの勉強を始めたよ その8 LL脳がscalaの勉強を始めたよ その9 LL脳がscalaの勉強を始めたよ その10 LL脳がscalaの勉強を始めたよ その11 第06章 関数型スタイルのオブジェクト LL脳がscalaの勉強を始めたよ
本連載では,次世代のエンタープライズ・プラットフォームを支える言語として,このところ最も注目を集めている言語「Scala」の魅力をお伝えしていきたいと思います。Scalaは,技術的にもかなり刺激的で,楽しい言語に仕上がっています。最初の一歩から刺激的な技術解説まで,幅広くScalaのおもしろさ,楽しさをお伝えしたいと思います。 第1回 なぜScalaなのか? 第2回 Scalaの基本的な文法 第3回 Scala言語を探検する(1) 第4回 Scala言語を探検する(2) 第5回 Scala言語を探検する(3)関数型言語としてのScala 第6回 Scala言語を探検する(4)Scalaの型システム 第7回 関数脳のつくり方 First Season 第8回 Scala DSLでできること 第9回 Scala DSL事始め(前編) 第10回 Scala DSL事始め(後編)
Scalaを仕事をサボって勉強しています。ScalaはJava VM上で動くオブジェクト指向+関数型言語で、Javaクラスを使ったり、ScalaクラスをJavaで使ったりできるんですね。とても楽しいです。 インタープリタで対話的に実行できるし、スクリプト言語のように実行できるし、コンパイルして実行することもできます。実行環境は、MacPortsで入れることができるので、インストールもお手軽にできます。 んで、Scalaをコンパイルすると、.classファイルができる。つまり、Javaをコンパイルした時と同じモノが出来るわけです。このおかげで、JavaとScalaはシームレスな連携をするので、ScalaでWebアプリを実装できるんじゃねーかと思い、やってみた。 環境は以下の通り。 Mac OS 10.5.6 Eclipse 3.4.2 + Scala Eclipse Plugin 2.7.3
はじめに Liftによるアプリケーション開発、第3回となる本稿は、Modelを利用したデータアクセスについて解説します。 前回、LiftのView層を解説する際に利用したサンプルを、LiftのModelを利用してデータベースへのアクセスを行うように改良しながら、Modelの使い方について説明します。 対象読者 Javaは知っているが、Scalaも学んでみたいと思っている方 ScalaでのWebアプリケーション開発に興味がある方 必要な環境 最低動作環境 Java SE 5 推奨環境 Java SE 6 Apache Maven 2.10 Scala 2.7.5 LiftのModel Liftにおけるデータアクセスコンポーネントは、Mapper and Record Frameworkと呼ばれています。その名のとおり、MapperはJDBCを利用したデータアクセスを提供するコンポーネントで、
■ [scala] foursquareが半年かけてScala+Liftに移行した話 foursquareがLiftに切り替えたという話を聞いてびっくりしましたが、どうやら本当だった模様。 スライド:foursquare.com & scala/lift 以下、内容抜粋 もとはPHP+Apache+MySQLだったが、エンジニアが書いたものじゃなく、これからの拡張のためには書き直すべきだった 静的型・コンパイル言語が好き。Wicketを試したけど、Object型使いすぎなのと関数がfirst-classでないのがちょっと Javaの頃からなるべく関数的に書くようにしてたんで、Scalaは自然 コールバック書くだけでAjaxになるのはいいね! まあせっかくスタートアップなんだし、変わった・面白いものを使ってみたかったってのはある リライトについて (書き換え中は?)PHPとセッションの共有と
このエントリは scalaとか全然知らないjavaプログラマが、scalaのWebフレームワークliftで簡単なアプリケーションを構築するまでの過程をまとめたものです。 続きものです。全何回になるかはわからないけど、公式サイトのドキュメントに書いてある内容を実際に動かした後、 何らかのアプリケーションを実装するとこまでできればいいなぁと思います。 使用するliftのバージョンは、2008年8月8日現在で最新であるlift-webkit-0.9です。 目次 この目次はエントリが追加されたら更新します。 チュートリアル チュートリアル的な内容です。公式サイトのサンプルコードを動かしてみます。 scalaのWebフレームワーク liftで遊ぶ(1) - liftってなんなの?javaなの? - ゆろよろ日記 scalaのWebフレームワーク liftで遊ぶ(2) - インストール - ゆろよろ日
scala 2.8 のダウンロード http://www.scala-lang.org/downloads から最新版ダウンロード(scala-2.8.0.RC2.zip) パスにスペースを含まないディレクトリに解凍。ここでは C:\scala\scala-2.8.0.RC2 とした。 環境変数に以下を設定 SET SCALA_HOME=C:\scala\scala-2.8.0.RC2 SET PATH=%PATH%;%SCALA_HOME%\bin; 一応コマンドプロンプトで確認 >scala -version Scala code runner version 2.8.0.RC2 -- Copyright 2002-2010, LAMP/EPFL NetBeans 6.8 のインストール http://netbeans.org/downloads/index.html からダウンロード
※(2009/12/14)現在は、IntelliJ IDEA 9 の正式版がリリースされています。Plugin Manager より Scala Plugin を正常に利用できるため、正式版の利用をお勧めします。 ちょっと前に IntelliJ IDEA がオープンソース化しました。Eclipse の Scala プラグインはまっとうに動かないので、これを機に Scala 用の IDE として、IntelliJ + Scala Plugin を使ってみようかと。 前に試したときは Scala プラグインが incompatible になってしまいうまく動いてくれなかったのですが、先日 twitter 上で親切な方(@tatsuya6502)に「EAP ならできるよ!」とおしえてもらった*1ので、さっそく私もインストール&セットアップしました。 事前準備 JDK が未インストールならば、ht
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く