(注:2016/1/21、頂いたフィードバックをもとに記事を修正いたしました。) 『 Programming in Scala (Scalaでプログラミング) 』の初版を読み始めた(でも読み終えていない)5年前からJavaの代わりにScalaを使うようになりました。最初はテストの時に使用していましたが、すぐにちょっとしたユーティリティクラスでも使用するようになり、気付いたらプロジェクト全てで使用するようになっていました。 Scalaに対する不満は多く存在しますが、この記事は違います。これは非難するものではなく、むしろ称賛するものです。 Scalaに興味ある開発者や聞いたことがあっても詳しく見たことがない人、「スムーズなプログラミングの妨げになる」と思い使用を先送りしていた人のために書きました。もちろんScalaファンに読んでもらうのも、他の人にも紹介してもらうのも大歓迎です。 この記事は3
僕はこれまでまともに学習したプログラミング言語がPerlとJavaScriptしかなくて、静的言語的パラダイムや関数型パラダイムは概念は知っているものの、それがどう役に立つのか、逆にどういう面で課題がありどのように対処されているのか、などといったことを知らなかった。知らなくてもまあ仕事はPerlとJSでやっているので問題ない。しかしすでにこれらの言語から得られる概念的な知識の吸収の速度が鈍化してきていて、このままではエンジニアとしてまずいのではないかという危惧感があった。 そこで静的言語であり、関数型言語であり、また社内でも使われ始めているためサンプルコードがあるScalaの学習をすることにした。 学習するにあたって困ったことは、どういうドキュメントを読み、どのように実践するとScalaの概観をつかめるか分からないということだった。そこで今回は自分の経験を踏まえて、このように入門していくと
下記のWikiページは version 1.3 (July 13,2010) です。英文は表示されませんが、編集ページ上にコメントで残してあります。加筆・修正等はどうぞご自由に。 翻訳文の PDFはこちらです。 A Scala Tutorial for Java Programmer version 1.2 A Scala Tutorial for Java Programmer version 1.3 (表示コメントは昔のままですが) ver1.3は reStructuredTextで書いてあります。ソースや作り方は PDF最後のページに添付ファイル(UTF-8 BOMなしテキスト)として埋め込んであります。 翻訳は完了しましたので、どなたか翻訳の不備をご指摘願います。 -- tmiya (2007-11-18 21:32:02) 翻訳おつかれさまでした。ファイル名を_jaをつけるなどし
class Hoge { //引数リストがないメソッド def f1 = 1 //引数がないメソッド def f2() = 1 //引数が1つのメソッド def f3(x: Int) = x * 2 //引数が複数のメソッド def f4(x: Int, y: Int) = x * y } //引数リストがないメソッド ////hoge.f1() ////hoge f1() hoge.f1 //> res0: Int = 1 hoge f1 //> res1: Int = 1 //空行は伊達じゃないよ //引数がないメソッド hoge.f2() //> res2: Int = 1 hoge.f2 //> res3: Int = 1 hoge f2() //> res4: Int = 1 hoge f2 //> res5: Int = 1 //空行は伊達じゃないよ //引数が1つのメソッド
がくぞ @gakuzzzz 初期化子みたいな専用の言語機構をオブジェクトにもコレクションにも用意して個別に覚える必要があるのに比べて、applyが省略可能とい1個のルールのみでその辺までカバーできるシンプルなScalaが複雑だと言われるのは何故なんだぜ? 2015-09-16 12:18:33
Play Framework 2.2.1 + Scala を触り始めて一週間くらいたった。 触りながら困った点(というか「疑問に思った」程度のものが多いが)をメモしていたので晒しておく。 雑なメモで無知を晒すのは恥ずかしいが、同じことではまる人がいるかもしれないもんね。 間違っているところがあったらコメントで教えてもらえると大変嬉しいです。 Play 関連 Q: app/assets/ と public/ の違いは? A: app/assets は CoffeeScript, LESS など preprocess するもの。public はしないもの。 Q: bindFromRequest すると Cannot find any HTTP Request here って出るよ。 A: Action の先頭に implicit request => を付ける。 Action { implic
This document is intended to outline some basic Scala stylistic guidelines which should be followed with more or less fervency. Wherever possible, this guide attempts to detail why a particular style is encouraged and how it relates to other alternatives. As with all style guides, treat this document as a list of rules to be broken. There are certainly times when alternative styles should be prefe
Scalaには他の言語ではなかなか見かけない,謎の修飾子「implicit」が存在します。 僕もScala始めたばかりの時には,意味がわからず困惑しました。ぐぐっても個々の使い方は載っていても,まとまって解説しているところはあまりなく・・・。 そこで,多少なりScalaをかじった僕がまとめておこうと思います。 Scalaレベルはポケモンでいうと,まだ20〜30Lvくらいなので,ご了承ください。 1. implicitの概要 implicitとは「暗黙的な」という意味です。逆の意味をもつ単語はexplicit。 C#を使っている人は,これらの言葉を聞いたことはあるでしょう。 (しかし,ScalaのそれとC#のそれでは,全く意味は異なりますが・・・。) implicitには様々な使い方があります。その中で全てに共通するのは,「暗黙的に何かをしてくれる」という点です。 これだけ聞くと,「それって
前書き Scalaという言語をご存知ですか? Javaと同じくコンパイルするとclassファイルになり、出来上がったclassファイルをJadなどで逆コンパイルするとJavaのソースを生成できてしまうという、かなりJavaに近いプログラミング言語です。 JDKの機能やJavaのライブラリをそのまま利用することができるので、Javaプログラマが既存の知識を活用できる言語でもあります。 今回はJavaを利用している際に発症しがちな様々な症例を題材として、Scalaを利用した際に得られるメリットを紹介していきたいと思います。 興味のある方はその1も併せてご覧ください。 CPUの遊んでいるコアを死ぬほど働かせてみたいあなたに 最近のパソコンはCPUのコア数も増えてきて、4コアとか6コアのマシンも割と手頃な価格で手に入るようになってきました。 でも、そういったマシンのCPU使用率を見てみると、たいて
前書き Scalaという言語をご存知ですか? Javaと同じくコンパイルされるとclassファイルになり、実行時はJVM上で動作する、オブジェクト指向+関数型のプログラミング言語です。 Scalaを開発したのはJavaのgenericsの設計を手がけたり、javacの開発をしていた経歴も持つMartin Odersky氏。 Scalaは後発の言語ということもあって、Javaを書いている時に感じる冗長さに対する様々な解が用意されています。 本記事では、ScalaとJavaのコードを比較しながら、JavaユーザがScalaに移った際に得られるメリットを提示していきます。 尚、序盤のサンプルコードはJavaユーザに伝わりやすいように、returnを明記したり、メソッドは必ず{ }で囲むなど、極力Javaっぽい記述をしています。 だいたいJavaと同じような書き方ができます ScalaはJavaの
http://www.playframework.com/documentation/2.3.x/Highlights23 https://groups.google.com/forum/#!msg/play-framework/bTvJbeR_zvU/J3reqk6Xo4AJ 変更点は以下の通り 新規プロジェクトを作るのに今までは play new コマンドを使っていたけれど Typesafe Activator を使うようになった。 asset のコンパイルに sbt-web を利用するようになった(sbt-web については http://slides.pab-tech.net/sbt-web/ を見るとよい) 。 Java8 サポート。Java 6,7 も引き続き使えます。 Play-Java のパフォーマンス向上 Scala 2.11 サポート (2.10 も引き続きサポート)
PerlでWebAppの開発に必要なN個のこと - Islands in the byte stream の Scala 版です。 あるプログラミング言語で実際にWebAppを開発できるようになるまで、何が必要だろうか。言語仕様の習得は終えているとしよう。おそらく、最低限以下のような知識が必要だと思われる。とりあえずScalaについて知っていることを書いた。 パッケージマネージャ sbt が全てやってくれる。Scala のバージョン管理も、ライブラリのバージョン管理も。 http://www.scala-sbt.org/ Maven や gradle を使用することもできる。 アプリケーションサーバ Scala の Web アプリは 2 つのタイプに分けられる。Java の Servlet API を使用するものと、使用しないものである。どのフレームワーク、ライブラリを使うかによって変わっ
概要 極力Scalaの標準機能を使って、HTMLをスクレイピングしてみようと思っていろいろ試したメモ。手探り状態なので、かなりうだうだとしています。 HTMLパーサはいろんな意味で手に負えないので、Validator.nu HTML Parserを使用。 前書き Scalaは標準でXPathっぽくXMLを扱う機能が用意されている。ので、Webスクレイピングという用途にはわりと向いていると思う。 フルセットのXPathのような多様な指定ができるわけではないので、専用のライブラリを使った方がかゆいところに手は届く部分も多いけど、細かいライブラリの使い方を勉強しなくても、普段使ってるScalaのCollectionみたいな気分で要素を操作できるのは、なかなかに心地良い。 ScalaのXML操作の基本 ScalaでXMLを扱う場合は、scala.xml配下のXML、Elem、Node、NodeSe
2011年も相変わらず「Scalaは実用的なのか?」という 「え、実用的も何も、普通に使ってますが、、、」としか答えられない質問を幾度も受けました。 Scalaは実用的で、例えばコミケのコスプレ画像の収集などができます。*1 【コミケ81】コスプレイヤー画像まとめ:1日目【C81】さとろぐ。 からjpg画像を一括ダウンロードし "data/(画像のURLの最後の/以下)"というファイル名で保存しようと思います。 ポイント dispatchでHTMLを取得する LiftのHTMLパーサでHTMLをxmlに変換する ScalaのXMLサポートでxmlを解析して画像のURLを抜き出す ExtractorでURLの分解 scala-ioを使ってファイルに保存 dispatchでHTMLを取得する 別にdispatchでなくてもscala標準のscala.io.sourceでもできるし、scalaj
N高等学校でプログラミングを学ぼうとしている新入生向けに、プログラミングをやっているN高等学校の生徒/卒業生の情報発信、メディア露出、作品まとめを作ってみました。適当にまとめたので、自分のも入れて欲しい!とかというのがあったらN高のSlackの #programming にて @teacher_sifue までメンションください。 7coco Tech Blog 7cocoさんの技術ブログ 文系女子高生をどん底から救ったプログラミングの魅力 | 日経 xTECH(クロステック) 7cocoさんのメディア露出 uehr uehrさんのポートフォリオサイト 「N高等学校」ってどうなの? 卒業生に聞いた、学校生活と現在 ohtasojiさんのメディア露出 学校生活振り返り - deletend’s diary deletendさんの競技プログラミングブログ かっこいいサイバーマスクを作る[後編]
あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く