# Scala の記事一覧Scalaの特徴や活用事例、開発手法など、Scalaに関する実践的な情報を掲載しています。関数型プログラミングの学習に最適な内容です。
EclipseでScalaプログラミングを始めるための基礎知識:スケーラブルで関数型でオブジェクト指向なScala入門(1)(1/3 ページ) 人気の「Scala」を一から学ぼう 最近、私の周りでもScalaに関する話題が増えてきました。Twitterやブログ、技術系のニュースサイトでは毎日のようにScalaに関連する話を見かけます。 また、筆者が現在携わっているプロジェクトでも実際にScalaを用いて開発しています。いままではJavaで開発をすることが多かったのですが、それよりも簡潔で柔軟性のある記述が可能であり、Scalaでの開発は非常に生産性が高いと感じています。 本連載は、Scalaの特徴を紹介し、基本構文や関数、クラスなど、Scalaの基本的な機能について解説していきます。何らかのプログラミング言語を学んだことがあり、プログラミングの基本的なことが分かる人を対象としています。特に
黒猫ソフトウェア工房では、現役SEがこだわりのフリーソフトを開発しています。■最新情報 黒猫 SQL Studio 1.3.10.443 をリリースしました。(2007.10.21)new! 黒猫 SQL Studio 1.3.10.442 をリリースしました。(2007.10.20) 黒猫 Excel DBLink 1.2.3.39 をリリースしました。(2007.10.15) 黒猫 SQL Studio 1.3.10.440 をリリースしました。(2007.9.28) 黒猫 SQL Studio 1.3.10.438 をリリースしました。(2007.9.19) 黒猫 SQL Studio 1.3.10.437 をリリースしました。(2007.9.15) ■黒猫 SQL Studio 黒猫 SQL Studio は、あらゆるデータベースに接続可能な汎用SQL開発
概要 LAPACK (Linear Algebra PACKage) は、連立1次方程式、線形最小二乗問題、固有値問題、特異値問題などを計算するサブルーチン群です。 行列の分解(LU、コレスキー、QR、SVD、Schur、一般化Schur)やSchur分解結果の並べ替え、条件数の計算を行うこともできます。 密行列や帯行列に対するルーチンは提供されていますが、一般疎行列に対するものは提供されていません。 同等機能が実行列・複素行列に対して、単精度および倍精度で提供されています。 LAPACKは、LINPACKおよびEISPACKの機能を包含しています。 LINPACKおよびEISPACKのアルゴリズムは、 メモリのアクセスの際にメモリの階層を無視する傾向があります。 このためデータ転送に大量の時間を費やしてしまい浮動小数点演算が効率的に行われず性能を発揮できません。 LAPACKでは、最内ル
node.jsに関する基礎やチュートリアルのまとめ。 リアルタイムなWEBを実現するには必須のサーバサイドJS、node.jsについて色々とまとめてみました。 node.js node.jsについて node.js なんとなく凄そうだけどよく分からないという方も多いかもしれないので簡単に解説。 一番最初見た時は何かのJavaScript ライブラリかと思ったのですが、全く違って、V8というChromeにものっている高速JavaScriptエンジン上で動くサーバを動かせる仕組み。 サーバ自体を具体的に言うと次のようなコードで実現します。 var http = require('http'); http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/plain
JavaScriptプログラマーの間で「CoffeeScript」を使う人が増えています。CoffeeScriptとは一体どんな言語なのか、そして実際の現場で使うにはどうしたらいいのか、この連載を通して解説していきます。Webブラウザ向けのフロントエンド開発にも、そしてサーバサイド開発にも使える内容となっています。 CoffeeScriptが登場する前 JavaScriptは広く普及している言語ですが、ソースコードは見苦しいものになりがちです。小さなプログラム程度なら構いませんが、大規模なプログラムを作るのはかなり骨が折れる作業です。冗長な記号や面倒な決まり文句などが積み重なると、読みづらくメンテナンスしづらいソースコードができてしまいます。 JavaScriptを使ってある程度の規模の開発を経験したプログラマーの多くはそのような不満を感じ、もう一度JavaScriptで大きな開発をしたい
会誌「情報処理」連載の「プログラム・プロムナード」(2002年4月〜2005年3月掲載)と「Haskellプログラミング」(2005年4月〜2006年3月掲載)はどなたでもご覧になれます。ファイルはすべてPDF形式です。 「Haskellプログラミング」に掲載されたプログラムは http://www.sampou.org/haskell/ipsj/ から取ることができます.
今回は「モナド(monad)」について説明します。モナドはHaskellの重要な特徴の一つなので,名前くらいは聞いたことがある人が多いでしょう。ただ,「モナドは難しい」という声もよく聞きます。 モナドとは一体なんでしょうか。前回,「HaskellはIOを取り扱うためにモナドと呼ばれる特別な仕組みを使用することで有名です」と書きました。Haskellは遅延評価を行うため,プログラマが処理の順番を確実に指定することができず,そのままでは入出力の処理には不向きです。モナドを使えば制御構造を導入できるため,この問題を解決できます。前回でいえば,(IO a -> IO a)にマッチする関数――finallyやprintThenAdd――を定義している部分がモナドに相当します。また,GHCiのプロンプトにもモナドが使われています。このように入出力操作を行うモナドの代表格が「IOモナド」です。ライブラリ
Applicative よりも Monad の方が力が強い理由を考えるためのメモ。これから議論するためのたたき台なので、そう思って読んで欲しい。 コンテナで包む return Monad とは、コンテナである。コンテナは、文脈を表す。たとえば、Maybe というコンテナは、失敗するかもしれない計算という文脈を表す。 通常の値や関数を文脈に入れるための API が return である。 return :: a -> ma コンテナ内での関数適用 <*> 以下のような型を持つ関数を考える。 f :: a -> b この関数を return を使って文脈の中に入れてやると、型は次のようになる。 return f :: m (a -> b) この関数を、コンテナ内にある値に適応するための API が (<*>) である。 (<*>) :: m (a -> b) -> m a -> m b コンテ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く