トップページ⇒tech
995コメント335KB

プログラミング言語 Scala 8冊目

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2012/04/21(土) 22:14:38.18
The Scala Programming Language
ttp://www.scala-lang.org/

日本Scalaユーザーズグループ
ttp://jp.scala-users.org/

■前スレ
プログラミング言語 Scala 7冊目
ttp://toro.2ch.net/test/read.cgi/tech/1315134454/

■Scalaの紹介文(さわり)
Scalaは簡潔かつ優雅で型安全な方法でよくあるプログラミングパターンを表現できるように
設計された汎用プログラミング言語です。
Scalaはオブジェクト指向と関数型言語の特徴をスムーズに統合しておりJavaやその他の言語を扱う
プログラマをより生産的にすることができます。(以下略)
ttp://www.scala-lang.org/node/25

■Scalaに関する書籍(英語)
ttp://www.scala-lang.org/node/959
リファレンスマニュアルや草稿のPDFなども充実しているのでそちらも参照してください。
日本語の資料には、チュートリアルの訳やIBM dW、IT Pro, @ITの連載記事、各々で開かれた勉強会の資料などがあります。
0153デフォルトの名無しさん2012/06/30(土) 16:38:33.30
Pythonはこう

if start > end: return -1
0154デフォルトの名無しさん2012/06/30(土) 16:43:51.38
>>152
うーんw からかわれてるんだろうなぁw
「Pythonのグイド・ヴァンロッサム氏へのインタビュー」
で検索してくれ。ただ、読んだとしても、インデントの話
じゃない?と思うのかなぁ。
そもそもCやJavaでも「1行if」推進派の方だったら、何言って
も理解されないとは想像しますw
0155デフォルトの名無しさん2012/06/30(土) 18:57:12.08
一行ifが嫌われるのはうっかり見逃したり
次の行が実行文と間違う人がいると思ってるからなのか?
だとしたら相当なfoolproofだな
0156デフォルトの名無しさん2012/06/30(土) 19:21:05.05
そもそも何が問題なのだろう
Pythonのことはよくわからんからなー
Rubyの後置ifは許されるのかしら?
elseがないifとかありえんだろうという関数型的な話ではないよな
Cなら単体のifでも絶対に中括弧で囲むというコーディングルールはあると思う
0157デフォルトの名無しさん2012/06/30(土) 19:56:01.91
これか

読みやすいという答えに何かご不満でも? 私は至極もっともな理由だと思うよ。 コードの読みやすさを気にしないだ
ろうか? 正しくインデントされていないコードは嫌では? インデントを文法の一部にすることで、すべてのコードが適
切にインデントされることを保証できる。 かっこを用いる場合だが、その置き方にいくつかの流儀がある。 つまり、
開きかっこをifと同じ行におくか、それとも次の行にか? 次の行だとして、インデントするか、しないか? 閉じかっこも同様。
もしどれかの流儀に慣れると、他の流儀は読みにくくなり得る。 コードをざっと読む場合、多くの人はいずれに
しろインデントを頼りにするので、 これはしばしば次のようなバグを見落とすことにつながる。


if (x > 10)
  x = 10;
  y = 0;


ifが式でさらに副作用をなるたけ嫌うscalaじゃ書かなそうなコードかな〜?
0158uy2012/06/30(土) 23:57:00.53
そもそもプログラミングにおいてIF文使ったら負けだと気づけ
0159デフォルトの名無しさん2012/07/01(日) 09:36:43.61
>>156
Cで一行からでも{}付ける習慣があるのはは
ぶらさがりelse/elseifの問題があるからだな
0160デフォルトの名無しさん2012/07/01(日) 10:12:35.69
>>157
言ってることが矛盾してるんだよな。
Pythonだと、
if x > 10: z = 1
と書いても、
if x > 10:
  x = 10
  y = 0
と書いても、
バグの見落としにならないし、
if x > 10: z = 1
  x = 10
と書く香具師がいたらそれはただの馬鹿だし、
if x > 10: z = 1
x = 10
の二行目をifの続きだと思う香具師も馬鹿。
0161デフォルトの名無しさん2012/07/01(日) 10:14:46.55
香具師って何?
0162デフォルトの名無しさん2012/07/01(日) 10:32:33.93
>>161
こうぐし 工具 師

工具を使う職人、つまりココではプログラマの事を馬鹿にした表現
0163デフォルトの名無しさん2012/07/01(日) 13:40:35.71
>>161
古語みたいなもんだから、気にしなくていいよ
0164デフォルトの名無しさん2012/07/01(日) 15:01:31.91
香具師=ヤシ
0165デフォルトの名無しさん2012/07/01(日) 15:04:36.39
>>161
奴 -> ヤツ -> ヤシ -> 香具師

こういう単語使う人って、10年後くらいにもまだScalaやってたりするのかな
0166デフォルトの名無しさん2012/07/01(日) 21:06:57.17
10年後にはもう37歳になるのか
...早いな〜
2002〜2012と、2012〜2022だと後者は前者ほど劇的な変化はコンピュータ的にはなさそうな気がする
0167デフォルトの名無しさん2012/07/01(日) 21:37:31.79
プログラミング言語史的にはこの10年も大したことは起きてないでしょ
C#がうまくいったのと、JavaScriptとObjective-Cが墓から蘇ったくらいで
あとはRails人気でRubyが普及したとかか
Pythonは2002年には既にある程度人気あったはずだし
0168デフォルトの名無しさん2012/07/02(月) 11:42:53.39
>>166
Jobs が死んだからな
0169uy ◆pdu1UZmweE 2012/07/03(火) 11:28:15.45
>>167
そもそも技術は既に開発されていて、知ってる奴は昔から知っている
知ってる奴からすればああようやく流行ってきたかおせーなって程度だろ
一般浸透してゴミッカスドカタ共がその利点を理解し
使うかどうか
人海戦術を嫌う奴は多いけど、結局最後は人の数
どんな優れた技術も理解する奴が少ないと流行らないから
ゴミカス共が理解できる範囲のレベルの技術が流行り、
なんかそこで意味わからない方法で、効率の悪いプログラミングを、効率をよくしようと努力したのが
C#.NET まさにドカタの為のドカタ言語
Scala(笑)
0170デフォルトの名無しさん2012/07/06(金) 21:01:30.11
>>142
この本買った。DSLでScalaは真価を発揮、に同意。
1章冒頭の「ホイップをトッピングしたグランデサイズの
スキニーシナモン・ドルチェ・ラテ」の(自然言語と
しての)DSL具合に笑った。
0171デフォルトの名無しさん2012/07/08(日) 22:33:58.46
今唐突に言うけど水島さんエバンジェとか言っていじってごめんなさい
また戻ってきてよ
0172デフォルトの名無しさん2012/07/08(日) 23:01:50.33
戻れも何もkmizuさんは今でもここ見てるでしょ
単に話すことないだけでは
0173デフォルトの名無しさん2012/07/08(日) 23:21:22.17
彼は忙しそう
0174デフォルトの名無しさん2012/07/09(月) 01:52:58.20
パーサコンビネータの使い方が何度読んでも分からんとです。
int hoge, hage[3] = { 1, 2, 3 }, huge = 5;
をパースする例とか、どっかないですか?
0175デフォルトの名無しさん2012/07/09(月) 10:42:24.72
import scala.util.parsing.combinator.JavaTokenParsers
case class IntDef(name: String, value: Int)
case class IntArrayDef(name: String, value: IndexedSeq[Int])
object HogeParser extends JavaTokenParsers {
lazy val parse = "int" ~> repsep((defIntArray | defInt), ",") ~ ";"
lazy val defInt = ident ~ ("=" ~ wholeNumber).? ^^ {
case ident ~ None => IntDef(ident, 0)
case ident ~ Some(_ ~ default) => IntDef(ident, default(0).toInt)
}
lazy val defIntArray = ident ~ "[" ~ wholeNumber ~ "]" ~ ("=" ~ "{" ~> repsep(wholeNumber, ",") <~ "}").? ^^ {
case ident ~ _ ~ size ~ _ ~ None => IntArrayDef(ident, IndexedSeq.fill(size.toInt)(0))
case ident ~ _ ~ size ~ _ ~ Some(defaults) => IntArrayDef(ident, defaults.map(_.toInt).toIndexedSeq)
}
def apply(str: String) = parseAll(parse, str)
}

scala> HogeParser("int hoge, hage[3] = { 1, 2, 3 }, huge = 5;").get
res1: HogeParser.~[List[Product with Serializable],String] =
(List(IntDef(hoge,0), IntArrayDef(hage,Vector(1, 2, 3)), IntDef(huge,5))~;)
0176デフォルトの名無しさん2012/07/09(月) 10:44:00.88
修正
- lazy val parse = "int" ~> repsep((defIntArray | defInt), ",") ~ ";"
+ lazy val parse = "int" ~> repsep((defIntArray | defInt), ",") <~ ";"
0177デフォルトの名無しさん2012/07/09(月) 15:10:54.63
なんか一箇所おかしかったのを直してgistへ
https://gist.github.com/3074485
0178デフォルトの名無しさん2012/07/09(月) 21:14:50.78
>>175
ありがとうございます!理解するのに時間掛かってお礼遅れましたすいませんorz

調べてみて何となくボヤっと分かった気がする部分
1.identやwholeNumberって何だろ?
  JavaTokenParsersで定義されてるパーサ?
2.Some不思議!
  (~>|<~)とかで捨てられなかった部分が引数に渡される?
  1, 2, 3とかは自動的に文字列のリストになる?
3.lazy val types = "int|string".rとか追加するとstring hoge;とかもパースできる

解決できなかった部分
int hoge = 5;<OK! int hoge = "test";<NG!
string hoge = "test";<OK! string hoge = 5;<NG!
ってするにはどうすればいいか?
http://ideone.com/mRyvb
0179デフォルトの名無しさん2012/07/09(月) 22:28:35.80
モヤっとしてる部分はParsers.scalaのソース読んでちゃんと消化しておくといいね

typesでまとめ上げてしまったら後に続かないから詰む
def definitions = (defInt | defString).*
def defInt = "int" ~ ...
def defString = "string" ~ ...
0180デフォルトの名無しさん2012/07/09(月) 22:48:20.81
>>179
あっ、なんか天啓来たかも?
頭から順番に自分が食べられる部分だけ食べたら残りを次の子へ渡して
次の子も頭から自分が食べられる部分だけ食べて残りを次へってバケツ
リレーみたくなってんのかな?
それで食べ残しがなくなったら、全部パースできてる的な?
そんな都合よくはいかない?まだモヤっとしてるけど、なんか取っ掛かり
がみつかった気がする。深く深く感謝です!
0181デフォルトの名無しさん2012/07/10(火) 13:55:20.44
で、逆引きレシピの具合はどうなのさ?
0182デフォルトの名無しさん2012/07/10(火) 22:37:11.48
銀色に光ってるよ
0183デフォルトの名無しさん2012/07/10(火) 23:04:01.39
俺の隣で寝てるよ
0184デフォルトの名無しさん2012/07/11(水) 12:13:38.37
締まり具合はどうなの?
0185デフォルトの名無しさん2012/07/12(木) 01:23:44.84
まあ実戦本よりは実戦感あるよ
コップ本の次に読む本としてはいいかもしれない
Scalaで何ができるのかというのがわかる
個人的にはもっとカタログ的なライブラリの比較みたいなのが欲しかったかな
どのライブラリ使ったらいいか悩んだりするから

でもさ、本が出るたびに思うけど、前半のScala入門の話とかいる?
「varとvalの違いを知りたい」とかさ、
たぶん日本で出てる全部のScalaの本に書いてあると思うんだけど、まだ書く必要あるの?
0186デフォルトの名無しさん2012/07/12(木) 01:27:31.65
Scalaが関数型言語とか...しっくりこねえ
0187デフォルトの名無しさん2012/07/12(木) 04:02:22.22
んー Ensimeは英語がなんかだるいし、
Eclipseのプラグインの方はただInstall new softwareから引っ張ってきただけなんだけどエラー吐く。
どういうこっちゃ
0188デフォルトの名無しさん2012/07/12(木) 04:24:56.14
英語がだるいやつはプログラミングなんてやめちまえ
0189デフォルトの名無しさん2012/07/12(木) 05:46:19.73
いやいやw なにいってんの
0190デフォルトの名無しさん2012/07/12(木) 23:22:41.39
函数モヒカンの集い 2012 in Tokyo

おまいら参加する?
0191デフォルトの名無しさん2012/07/12(木) 23:35:44.95
なにそれ?
まあどうせHaskellの連中がデカい顔するだろうから行かないけど
0192デフォルトの名無しさん2012/07/12(木) 23:40:34.48
Lisperのほうが強い
0193デフォルトの名無しさん2012/07/12(木) 23:44:47.64
Lispはいいや
奴らはマクロしか取り柄ないし
異様なimmutable推しのClojureはちょっとやっかいだが
0194デフォルトの名無しさん2012/07/12(木) 23:45:38.77
>>193
CLOSもあるよ!
0195デフォルトの名無しさん2012/07/12(木) 23:46:42.35
そのイベントは型付きラムダ計算が主流なので、erlang、lisp族は少し肩身が狭い
0196デフォルトの名無しさん2012/07/12(木) 23:46:52.00
言語ディスとか気持ち悪いから消えてくれませんかね
0197デフォルトの名無しさん2012/07/12(木) 23:48:27.31
the world is immutable.
0198デフォルトの名無しさん2012/07/13(金) 08:30:25.11
なら新党結成だ「関数の扱いが第一」
0199デフォルトの名無しさん2012/07/13(金) 10:14:52.64
>>198
よくできてるネタじゃないか
Twitterあたりでやるべきだったな
0200デフォルトの名無しさん2012/07/13(金) 23:58:03.36
カカッと@functional2chをフォローしている俺に隙は無かった
0201デフォルトの名無しさん2012/07/14(土) 00:35:10.06
scalaってなんなん
0202デフォルトの名無しさん2012/07/14(土) 08:48:59.01
ナンではありません
0203デフォルトの名無しさん2012/07/14(土) 11:29:08.78
雪花菜っておから?
0204デフォルトの名無しさん2012/07/14(土) 20:32:41.31
win7
cygwin
GNU Emacs 24.1.1
scala2.9.2
ensime_2.9.2-RC1-0.9.3.RC4
sbt

上記の環境で、M-x ensimeすると
Failed to connect to Swank: server process exited.
と出てきます。
参考になりそうなサイトはあったのですが、よくわからなかったです。
そのサイト
ttp://jutememo.blogspot.jp/2010/12/meadow-scala.html
一応パスまでに空白はありません。
どなたか解決策わかる方いますか?
02052042012/07/15(日) 06:09:12.17
諦めてeclipse3.7使ってます。
ところで、scalaってコンパイラ完璧ではない?
object Main {
def main(args: Array[String]) = {
val l = List(1, 2, 3)
l.map(x => x * 2)
}
}
だと"Editor does not contain a main type"ってエラー吐かれ
object Main {
def main(args: Array[String]) = {
val l = List(1, 2, 3)
l.map(x => x * 2)
print(l)
}
}
だと動作する。
0206デフォルトの名無しさん2012/07/15(日) 06:48:27.20
>>205
上は def main(args: Array[String]): List[Int]
下は def main(args: Array[String]): Unit
あとはわかるな?
0207デフォルトの名無しさん2012/07/15(日) 07:05:28.42
>>206
おうふ!セックス!
そっか、戻り値は最後のアレだっなー。
そっかそっかー。
0208デフォルトの名無しさん2012/07/15(日) 09:22:19.34
= {にしなきゃいいのに
0209デフォルトの名無しさん2012/07/15(日) 09:58:04.91
初学者ほど手を抜いて格好つけて、
つまらないところでハマる。
おまけにそれを他人のせいにする。
0210デフォルトの名無しさん2012/07/15(日) 13:38:05.03
まぁ一度顔真っ赤にしたら次から慎重になるさ、誰もが通る道だろ
0211デフォルトの名無しさん2012/07/15(日) 17:28:40.95
使い方をよく理解していない省略記法を使って節約できる時間と、
それでハマって無駄にする時間を天秤にかけたら、どちらがいいかは明らかだな。
02122042012/07/15(日) 19:59:11.38
カッコつけたも何も、サンプルプログラムなんだけどなぁ(^_^;)

= {
以外で便利な表記法あるっけ
0213デフォルトの名無しさん2012/07/15(日) 20:16:31.12
=を省略して

foo() {
}

とすれば、

foo(): Unit = {
}

になるとマジレス。
某実践プログラミングでは、今回の件の逆の間違い
(なぜか最後の値が返らずにUnitになる)を防ぐために非推奨にしてたけどね
02142042012/07/15(日) 21:16:42.12
トンクス
慣れが必要だなぁこの言語。
楽しんでみるよ!
0215デフォルトの名無しさん2012/07/15(日) 21:32:20.41
Scala Style GuideではUnit返すメソッドは略記法使えと言ってるよな
http://docs.scala-lang.org/style/types.html
自分はこっちの方が分かりやすいし短くなるから :Unit = つけるより好き
0216デフォルトの名無しさん2012/07/15(日) 22:01:31.76
何のための型システムなんだ
そんなもん検出できるからどっちでもいいだろ
0217デフォルトの名無しさん2012/07/16(月) 10:04:36.74
ここまでの流れをわかったうえで
そんなこと言ってるのか?
0218デフォルトの名無しさん2012/07/18(水) 19:37:38.48
Java 8 vs Scala: 特徴を比較する
http://www.infoq.com/jp/articles/java-8-vs-scala
0219デフォルトの名無しさん2012/07/18(水) 23:12:06.39
infoQでこんな長い記事初めて見た
0220デフォルトの名無しさん2012/07/19(木) 00:27:26.48
右サイドにある特集記事はこんな感じじゃね
0221デフォルトの名無しさん2012/07/19(木) 01:52:16.14
たまにはGroovyの事も思い出してあげてください
0222デフォルトの名無しさん2012/07/24(火) 02:51:22.65
正しいプログラミング言語の選び方
http://www.startup-dating.com/2012/07/developer-programming-languages/

どうせScalaなんか入ってないんだろうなと見てみたら
思いっきり入ってて逆にどうかと思ってしまった
0223デフォルトの名無しさん2012/07/24(火) 05:30:18.68
>>222
金融なんかは非プログラマがプログラミングを強いられる場面が多いんじゃね?
っで、これまでだと簡易言語を導入してたけど、今時はDSLに置き換わってる
のかな?って気がする。
0224デフォルトの名無しさん2012/07/24(火) 09:54:34.06
金融会社Jane StreetでOCamlに置き換えた例

なぜ次に学ぶ言語は関数型であるべきか
http://ymotongpoo.hatenablog.com/entry/20111105/1320506449
0225デフォルトの名無しさん2012/07/24(火) 22:30:58.08
https://www.coursera.org/course/progfun

scalaのオンライン授業がもうすぐ始まるよー
0226デフォルトの名無しさん2012/07/25(水) 14:54:24.32
scalaの導入事例増えてるよ
今年か来年頭には有名企業からも採用事例としてプレゼン資料というか、勉強会資料が続々でてくると思う
もちろんscalaエンジニアの募集もね
0227デフォルトの名無しさん2012/07/25(水) 16:00:24.84
あきれるわ
なんでいつも求人がないのよ…?
来年っていつの来年よ?
0228デフォルトの名無しさん2012/07/25(水) 21:44:41.56
http://jp.indeed.com/jobs?q=scala&l=
派遣会社は意外にめざといな

http://www.indeed.com/jobs?q=scala
http://www.linkedin.com/jsearch?keywords=Scala&searchLocationType=I&countryCode=us&trk=skills
http://careers.stackoverflow.com/jobs/tag/scala

scalaやhadoop、awsで外資系にとらばーゆするチャンスではある。
http://www.itjobswatch.co.uk/jobs/uk/scala.do
0229デフォルトの名無しさん2012/07/28(土) 15:25:04.64
REPLでtupleからunpackingして変数宣言した時に変数名が大文字だと
期待しているのとは違う挙動をするんですが、なぜなんでしょう?

環境: Scala version 2.9.1.final (OpenJDK Server VM, Java 1.6.0_24).

■. tupleからunpackingして変数宣言

scala> val (X, Y) = (1, 2) // 変数名が大文字の時はエラー
<console>:8: error: not found: value X
val (X, Y) = (1, 2)
^
<console>:8: error: not found: value Y
val (X, Y) = (1, 2)
^

scala> val (x, y) = (1, 2) // 変数名が小文字の時は問題無し
x: Int = 1
y: Int = 2
02302292012/07/28(土) 15:26:35.14
■. 2つめ以降を不要な入力として _ で捨てたときの挙動

scala> val (X, _, _) = (1,2,3) // X の型が Tuple1[Int] になってしまう
scala> X
res1: (Int,) = (1,)

scala> val (x, _, _) = (1,2,3)
x: Int = 1
scala> x
res2: Int = 1

■. パースに失敗してる?

scala> val (X: Int, _, _) = (1,2,3)
<console>:1: error: ')' expected but ':' found.
val (X: Int, _, _) = (1,2,3)
^
scala> val (x: Int, _, _) = (1,2,3)
x: Int = 1
0231デフォルトの名無しさん2012/07/28(土) 15:55:07.50
>>229
val の後にタプルを書いた場合はパターンマッチと見なされるが、
パターンマッチの中では大文字で始まる識別子は変数ではなく定数と見なされるから。
つまり最初の例では 1 を定数 X とマッチングしようとして、X が見つからないのでエラーになっている。

どうしても大文字の変数名を使いたければ
val t = (1, 2)
val X = t._1
val Y = t._2
のようにするしかない。
02322292012/07/28(土) 16:08:33.29
パターンマッチでしたか
ありがとうございました、おかげですっきりしました
0233デフォルトの名無しさん2012/07/28(土) 21:44:55.90
そういえばそんな決まりがあったな…

すっかり忘れてた。勉強になったわ。�dクス
0234デフォルトの名無しさん2012/08/01(水) 00:52:49.71
trait AttrHelper[+Holder[X]]
って表現のHolder[X]の部分がなんなのかよくわかりません
0235デフォルトの名無しさん2012/08/01(水) 02:05:10.09
なぜそれを今知りたいんだ
0236デフォルトの名無しさん2012/08/01(水) 13:03:13.45
個人でiphoneアプリ、Windowsアプリをマーケットに売って生き残れ

格安iPhoneEラーニング(学習動画多数あり)
http://tinyurl.com/7wj77om
コワーキングスペースJP
http://tinyurl.com/76vdrny
コワーキング帳
http://tinyurl.com/brzs486

javaやlinuxは手間がかかる 一人でやるには手間がかかりすぎる 手間がかからないで一人で開発できて
人の多いところで直接販売できる仕組みが提供されているメーカ製言語だけやる ずばりiphone またはWindow 8 Metro App Store C#
やるならメーカー製の言語 洗練された仕様 脆弱性が少なく 開発ソフトが優れ 課金ライブラリ アップデートライブラリが提供されていて 情報、書籍が多く開発しやすい
奴隷になりたければオープン系をやればいい 時間がかかり 人は多く 仕事の取り合い 足の引っ張り合い 脆弱性が多く 互換性がなく 癖があり 大規模開発中心
詳細設計しかやれない体になって年取ってぽいだ 独立もできない 手間のかかりすぎる仕様だから 

派遣屋 IT経営者はその方が喜ぶ 大規模分割開発では使い捨てても独立はできまい 代わりはいくらでもいる 嫌なら辞めろ
若い派遣営業は舐めた態度をとってくる ひどいピンハネ

オープン言語、日本独自開発の言語・フレームワーク ガラパコ携帯 javascript html5 android java linux python rubyやnode.jsとかやめとけ
メディアに金を払ってステマ宣伝してくるが釣られて手を出しても情報は少なく手間がかかり スパゲッティコード 未完成 デスマに陥る
コンパイルできないからパクられ  直接売る場所がないから企業に買い叩かれ金にならない 生きていけない奴隷仕様だ
0237デフォルトの名無しさん2012/08/01(水) 13:03:50.36
ここから抜け出すにはiPhone一択 またはWindow 8 Metro App Store(未確) C#
Objective-CやC#を覚えるとサーバーサイドからクライアントサイドまでカバーでき人の多い場所でソフトを売る権利を得られる
仕事や趣味でObjective-CやC#をやっておけば派遣切りされても会社辞めることになってもソフトを売って生きていける それはセーフティーネットになる
WEBサーバーIIS Win2008ServerVPS SqlServer Oracle MySql 言語はマーケットで売れるメーカー製のみ C#は自分用業務支援ツールとして使える 
例えばPHPでWEBアプリを作っていて管理者画面はC#(EXEアプリ)で作るとかなり早く作れる(Smartyなんか使うよりもかなり早くだ)
C#のソースを出さなければWEBアプリの著作権も守れる ASP.net(C#)+管理EXEアプリ(C#)+iPhone

C#マーケット Windows8 Metroアプリ WindowsPhone Surface PS Vita Xbox360 iphone(mono使用)
iPhoneマーケット iPhone iPad 予定 iTv iCar i (家電製品)

地方に安い土地を買いコンテナ型の格安高性能オフィスを建て(300万〜500万)
レンタル自習室&シェアオフィス・コワーキングで収入を得ながらそこでアプリを開発する
http://tinyurl.com/7pb2yaa
http://bit.ly/iLIpJa
0238デフォルトの名無しさん2012/08/01(水) 13:10:22.94
ステマ通報しといた
0239デフォルトの名無しさん2012/08/01(水) 13:25:18.46
javaやlinuxは手間がかかる?
ここから抜け出すにはiPhone一択?

じゃあScalaでAndroidアプリ作ればいいんじゃないかな(´・ω・`)
0240デフォルトの名無しさん2012/08/01(水) 13:37:20.52
言いたいことは、個人でアプリなりwebサービスを作って提供できるようになれ!ってとこか。
されに関しては同意だ。
0241デフォルトの名無しさん2012/08/01(水) 13:37:20.77
SL4AScala
0242デフォルトの名無しさん2012/08/01(水) 21:48:10.25
trait AttrHelper[+Holder[Z]]
って表現のHolder[Z]の部分がなんなのかよくわかりません
0243デフォルトの名無しさん2012/08/01(水) 21:52:59.26
>>242
このスレには>>234で投下済みだ。
別スレを回ろう。
0244デフォルトの名無しさん2012/08/02(木) 01:00:29.93
http://togetter.com/li/17462
http://yuroyoro.hatenablog.com/entry/20110126/129604334
これとこれ見ろや

っていうかむしろ「AttrHelper、Holder」で検索すると真っ先にこれが出てくるレベル
それでも理解できないならScala使うのやめよっか…
0245デフォルトの名無しさん2012/08/02(木) 22:58:31.56
別スレで回答貰ったんで、もういいです
0246デフォルトの名無しさん2012/08/04(土) 12:17:33.07
Scalaは関数型プログラミング言語ではない?
0247デフォルトの名無しさん2012/08/04(土) 13:22:51.11
まず関数型プログラミング言語とは何か定義してください
0248デフォルトの名無しさん2012/08/04(土) 22:10:06.19
ああーん?Wikipedia大先生に教えてもらってこいよ!!
0249デフォルトの名無しさん2012/08/05(日) 10:07:45.39
泊稼働させないと本当は25%程度不足するよね。
0250デフォルトの名無しさん2012/08/05(日) 18:57:49.94
北電社員乙
0251デフォルトの名無しさん2012/08/06(月) 07:53:14.49
class Functor f where
fmap :: (a -> b) -> f a -> f b

何故このように変換できるの?

trait Functor[F[_]] {
def map[A,B](fa: F[A])(f: A => B) : F[B]
}

0252デフォルトの名無しさん2012/08/06(月) 09:56:54.97
class Functor f where
fmap :: (a -> b) -> f a -> f b

instance Functor [] where
fmap = map

fmap (\x -> x * 2) [1, 2, 3]

↓

trait Functor[F[_]] {
def map[A,B](fa: F[A])(f: A => B) : F[B]
}

implicit val functorListInstance: Functor[List] = new Functor[List] {
def map[A,B](fa: List[A])(f: A => B): List[B] = fa map f
}

implicitly[Functor[List]].map(List(1,2,3))(2 *)

こう書けばわかるでしょ
■ このスレッドは過去ログ倉庫に格納されています