Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Matzにっき(2005-07-21)
[go: Go Back, main page]

«前の日記(2005-07-20) 最新 次の日記(2005-07-22)» 編集

Matzにっき

<< 2005/07/ 1 1. 不採録
2. ブロックパラメータの新文法
3. 今日のハック
2 1. 降れば土砂降り
2. お片付け
3 1. 断食日曜日
4 1. プログラミング言語 citron
2. ESR: "We Don't Need the GPL Anymore"
5 1. バグトラッキングシステムへの不満
6 1. WikiNameのないWiki
2. 究極の俺オープンソース
7 1. UNIX USER 9月号
2. 北海道
3. まつもとゆきひろの写真
4. kmyacc
8 1. 北海道へ
2. 今日のハック
9 1. オープンソースカンファレンス2005 in Hokkaido
2. 懇親会
3. 今日のハック
4. なぜテスト駆動が身につかないか
5. 発熱
10 1. 白石ワード
11 1. 日経Linux 9月号
2. Rastへのメールのとりこみ
12 1. 計算機システム特別講義IA
2. 今日のハック
3. Rastへのメールのとりこみ(2)
4. 計算機システム特別講義IA
13 1. Rastへのメールのとりこみ(3)
2. 今日のハック
3. 商談
4. 筑波へ
5. 計算機システム特別講義IA
14 1. 計算機システム特別講義IA 本番
2. 夕食
15 1. 計算機システム特別講義IA 本番(2日目)
2. ACとの遭遇
16 1. お宿
2. 帰還
3. 保護期間延長で、埋もれる作品激増?/著作権は何を守るのか
17 1. 松江
18 1. 日経Linux 9月号
2. ピアノ発表会
3. 海の日
19 1. ルびマッ
2. 日経Linux 9月号
3. 情報科学若手の会
20 1. 御中元
2. オープンソース開発で得られる喜び「スゲェ感」
21 1. Perlの文法を持ったJavaベースのスクリプト言語 - Sleep 2.0公開
2. 今日のハック
3. lambda式
22 1. 新lambdaの実装
2. 新lambdaの文法
3. 吹奏楽発表会
23 1. 掃除の日
24 1. 松江
25 1. 健康診断
26 1. FEEDBRINGER
2. OSCONチケット
3. RubyConfチケット
4. ゲラ
27 1. 夏のプール
2. 散髪
3. lambda式
4. FEEDBRINGER (その2)
28 1. 書籍『オープンソースがビジネスになる理由』
2. ローカル変数のシャドーイング
3. 今日のハック
4. 大家族
29 1. Matz日記分室: マイクロソフトのオープンソース論
2. 「iPodなどを私的録音補償金制度の対象に」JASRACなどの7団体が声明
3. 書籍『オープンソースを理解する』
30 1. 紙芝居
2. 買いもの
3. 焼肉
31 1. デジタル放送の「コピーワンス」が運用見直しへ−年内に結論。家庭内IP伝送も視野に
2. 松江
>>
Dr.Web 予測するアンチウイルス 販売開始一周年!
ユーザ・サーバ数が無制限のライセンスも低価格でご利用いただけます。

2005-07-21 [長年日記]

_ [言語] Perlの文法を持ったJavaベースのスクリプト言語 - Sleep 2.0公開

JVM上で動作するスクリプト言語がまたひとつ。

ま、いろんな言語が登場するのは良いことだけど、Sleepに関して言えば すくなくとも外見からはあまり魅力を感じない言語ではある。やっぱ、Perl(の文法)に影響を受けるとどう転んでも美しくない。

しかし、MYCOM PCは(Java関連の)オープンソースソフトウェアを紹介してくれるのは ありがたいけど、情報元へのリンクがないのがいただけない。 たとえばSleepだったら「The Sleep Scripting Project」への リンクがあってしかるべきではないだろうか。

_ [Hack]今日のハック

tDiaryがアップデートされてCSRF対策が行われたのはよいが、 おかげでtdiary-mode.elから更新できなくなっていた。 http.elとtdiary-mode.elの最新版を入手し、 変更点をマージした。

手元のものは

  • html-modeではなくrd-modeベース (tdiary-mode.el)
  • update後、自動的にreplaceモードに (tdiary-mode.el)
  • ssl.elを使ったSSLアクセスに対応 (http.el)

という変更が加えられている。

_ [Ruby]lambda式

先日来考えているlambdaについてだが、 以下のようなものを考えている。

  • 「->(a){...}」でlambda式を表現する。
  • lambda式のパラメータはメソッドのパラメータと同様の形式が指定できる。オプション引数などもあり。
  • 1.9で導入された「{|a|...}」形式は取り止め
  • 「ary.each -> x {puts x}」という形式も許す。これはlambdaを引数とする「ary.each(->(x){puts x})」ではなく「ary.each{|x| puts x}」を意味する。

yacc記述はなんとかなりそうだが、メソッドの引数部分と ブロックパラメータの部分の実装が違いすぎて、動かすのは大変そう。

本日のツッコミ(全13件) [ツッコミを入れる]
_ なかだ (2005-07-22 11:00)

lamdaを引数にしたい場合は、 ary.each(->x{puts x}) ?
それとも括弧がもう一つ?

_ なかだ (2005-07-22 11:04)

あ、「これはlambdaを引数とする…ではなく」というのがそういう意味ですか。失礼。
でも foo = ->(x) {puts x} って書くとなんかやだなぁ。

_ かくたに (2005-07-22 11:15)

すごーく下のほうに「関連リンク」が一応あります……。

_ なかむら(う) (2005-07-22 12:27)

->と同義の予約語lambdaを導入して、foo = lambda(x){puts x} とも書けるようにすれば「なんかやだなぁ」も解決?

_ ななしさん (2005-07-22 15:26)

>情報元へのリンクがないのがいただけない。
下のほうにいつもあるみたいですよ。
関連記事の下にあるので、いつもあれ?オフィシャルサイトは?って思ってしまいます。ああ、そうだ、下のほうにあるんだった。って。

_ まつもと (2005-07-22 15:41)

ありましたね、情報元へのリンク。見落としてましたよ。

_ まつもと (2005-07-22 15:41)

なかださん、

  foo = ->(x){puts x}

はイヤですか。そうか、じゃあどういうのがいいでしょうね。
「->」はPerl6起源なのですが。

_ τ森 (2005-07-22 16:28)

関数型言語の文化圏からすると引数の前に -> が来るのは激しく気持ち悪い気もしますが……

_ まつもと (2005-07-22 16:52)

「関数型言語の文化圏」では関数型を「引数型 -> 戻り値型」と書くんでしたっけ。

別に「->」に固執していませんから、よりよいアイディアがあれば歓迎します。
条件は

  * 無名関数を表現する
  * 引数リストに前置する
  * 今まで使われていない記号の組合せ
  * より多くの人に違和感がない(できれば)

くらいでしょうか。

_ nobsun (2005-07-23 00:01)

Haskellでは a -> b を(->) a b と書くこともありますね:)。
\ というの却下でしたっけ? \(x){puts x}

_ τ森 (2005-07-23 14:32)

ちなみにHaskellだとlambda式は

\a b c -> a+b+c

というように書き、
OCamlだと(無名)関数を

fun a b c -> a+b+c

というように書きます。

_ arai (2005-07-24 05:24)

はああ、私のような馬鹿にはよくわかりません。
lambdaのパラメータをそんなに複雑にする場面があるのでしょうか.

_ まつもと (2005-07-24 09:16)

複雑って言っても、省略可能な引数が指定できるようになるだけですからねえ。lambdaっていうのは要するに関数ですから、できるものならメソッドと同じように省略可能な引数も使いたいってのは自然な欲求ではないでしょうか。

お名前:
E-mail:
コメント:
本日のリンク元
アンテナ
検索

RSS feed meter for http://www.rubyist.net/~matz/ Creative Commons License This work is licensed under a Creative Commons License.