1read 100read
2012年4月プログラム240: J言語 (194)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
C++相談室 part94 (972)
【論理】Prolog【初心者】 (480)
IEコンポーネントを使い倒すスレ Ver.2 (690)
雑談スレ 4 (339)
雑談スレ 4 (339)
★★Java質問・相談スレッド153★★ (574)
J言語
1 :10/01/12 〜 最終レス :12/03/23 APLの後継、J言語についてなんか書くスレ。 本家(J software) http://www.jsoftware.com/
2 : アイちゃんも来ないのかよw
3 : このスレッドは天才pンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京都大学霊長類研究所
4 : J使いはいないんだろうかw FizzBuzz問題をJでやってみた。 ググって見ると何人かの人がやってみたようだが。 fb =: 3 : 0 fb0 =: 3 : 'if. 0=15|y do. <''FizzBuzz'' elseif. 0=3|y do. <''fizz'' elseif. 0=5|y do. <''Buzz'' elseif. do. <y end.' fb0"0 >: i. y ) 2行目はアレだが、3行目はJっぽい処理の仕方じゃないかと思う
5 : 本当に誰も来ないな… ふと思って試してみたんだが、explicit deffinitionは無名関数として使えるっぽい。 ( 4 : '2 * x + y') / 1 2 3 で、ちゃんと期待する結果(22)が出る。
6 : おお、とうとうJ言語もスレができたんですね。 では、ごあいさつがわりに私もFizzBuzzを。 wd&.>(<'FizzBuzz')(I.0=15|n)}(<'BUzz')(I.0=5|n)}(<'Fizz')(I.0=3|n)}<"0 n=.>:i.100
7 : 一人でやってるとなんか言いたくなることがあるんで、立ててみました。 本家のフォーラムや個人のblogにレスつけられる程じゃないんで。 FizzBuzzはそう言う書き方もあるんですね。 } のその使い方は初めて知りました。 組込みの配列処理動詞は覚えて多用すべきなんでしょうが、数が多いのと、自分の 用途(簡単な数値計算)にはあまり使わないのとで、ごく簡単なもの以外は放置状態です。
8 : で、なんか言ってみる。 複数の動詞の和の形のtrain (v1+v2+... +vn) が、 (v1 y)+(v2 y)+ .... +(vn y) のように働いて くれたらなぁと思って試してみたら、実際そう動いた。 一応、trainの評価規則を確認してみると自然に そう言う評価になるように作ってあるようだ。 うまく考えてあるなぁと感心した。
9 : J言語は個別の要素の書き換えがめんどうですね。 Cなどで配列aの要素に代入する場合 a[0]=1 ですがこれと同様のことをJでかくと a=:1(0)}a になってわかりにくいです。 でも驚きを与えてくれる不思議な言語で結構きにいってます。
10 : > J言語は個別の要素の書き換えがめんどうですね。 確かに。 JやAPL流のコーディングスタイルでは配列の要素を個別に処理する事はあまりないから、デザイナーとしてはその辺の冗長さは気にしてないって事なんですかね? > でも驚きを与えてくれる不思議な言語で結構きにいってます。 俺レベルだと、驚くよりも難解な仕様に首をひねることの方が多いですよw 今日も x { y の使い方を覚えるので一苦労しました。 左引数の構造が、 要素指定の方法によって一見バラバラに見えて、しばらく途方にくれましたよ。
11 : 私の場合、Jの使い道は anarchy golf http://golf.shinh.org/ の問題を解くことぐらいなので ほんの数行のプログラムしかかいたことがありません。
12 : >>11 リンク先見ましたが、Jは健闘してますねぇ。 俺もなんか解いてみようとしましたが入出力の仕様がよく分からないんでやめました。
13 : 私にわかる範囲のことであればお答えしますので ぜひ解いてみてください。
14 : thx でもまあ、一応自分で公開済みのソース見て考えてみますよ。
15 : TIOBE Programming Community Index for January 2010 ttp://www.tiobe.com/index.php/content/paperinfo/tpci/index.html 46位。 意外に多い。
16 : つーかそのランキングおかしいだろw D言語がCOBOLやJavaFX抜いてるとかねぇよwww PL/IやVHDLがJより下ってのも絶対にありえん
17 : これコミュニティ数でしょ? 企業で使われてるけど趣味で使わないみたいな言語が下位になっているのでは
18 : なんで、そんな小ネタにだけ反応するんだよw
19 : ネタがないので、前から気なってるJの変数周りの妙な動作について。 受け取った2項動詞をそのまま返すだけの副詞hogeを定義する。 hoge =: 1 : 0 : f =. + x u y ) で、なんか動詞を食わせて動かしてみる。 1(+ hoge)2 3 2(* hoge)4 8 (つづく)
20 : で、適当な変数にバインドしたのを食わせても動作は同じ。 g =: * 2 (g hoge) 5 10 ここまでは異常なし。で… f =: * 2 (f hoge)5 7 なぜか、hogeの中で定義したローカルな f にバインドされた動詞(+)を呼んでるっぽい。 (オチは無い。)
21 : >>19 いきなり、むずかしいとこにいっちゃうんですね。 もちろん、私の理解の範囲外です。
22 : 難しいですw 俺も何が起こってるのかよく分かってません。 どうもJではoperatorに動詞を食わせるとその名前が渡る場合があって、 その場合にグローバルとローカルの名前が区別できてないんじゃないか とも思ったんですが、↓のように戻り値をtacitな定義にすると普通に 動くんで単純にそうとも言えないようです。 hoge =: 1 : 0 f =. + u ) まあ、とりあえずの解決策としては動詞をoperatorに食わせる前に f. で 定義に置き換えてしまえばOKなんですが、これもその動詞が $: で 自己参照してると使えないんで若干気持ち悪いです。
23 : >戻り値をtacitな定義にすると普通に動くんで単純にそうとも言えないようです。 と、書いたがやっぱり単純にグローバル名とローカル名の区別が付いてないっぽい。 >>22 のhogeの最終行をいじって、u (hogeの左引数)を必ず評価して返すように変更すると、 >>19-20 の結果が再現された。 huga =: 1 : 0 f =. + u f. ) >>20 のhogeで普通に動いて見えるのは、多分、uにバインドされた名前 ' f ' がそのまま返って、 元のコンテキストで評価されるからなんだろう。
24 : これはどう解釈したらいいんだろう。 a=:'N='&,": a 7 N=N=N=N=N=N=N=7
25 : dictionaryを調べたら & の用法に x m&v y ? m&v^:x y てのがありました。 要するに「(m&v)をyに対してx回作用させる」と言う事のようです。 件の定義の 'N='&, の場合、yの頭に文字列'N='をx個くっつけると言うことになります。 で、全体としては ('N='&,) ": は典型的な hookで、monadとしてtacitに書くと y ('N='&,) ": y となるので、例示の通りの動作となります。
26 : 【誤】 x m&v y ? m&v^:x y 【正】 x m&v y ⇔ m&v^:x y 【誤】tacitに書くと 【正】explicitに書くと
27 : ついでですが、 dyadとして使った場合は x ('N='&,) ": y (dyadic hook)となって、 2 a 7 N=N=7 のように左引数でN=の数を別に指定できます。
28 : >>25-27 説明、ありがとうございます。 そうか、単項動詞のつもりが、二項動詞になっているのか。
29 : どういたしまして。
30 : 独り言。 Learning Jを一通りさらおうとしてるが16章の配列要素の操作の説明が略しすぎで苦労した。 dictionaryも凝った例で読みにくいし、自分でいちいちテストデータを考えて動詞の機能を 試す羽目に。 正直ちゃんとした日本語の解説書か、英文でいいから普通の形式の仕様書が欲しい。
31 : 巷では基礎文法最速マスターなるものが流行りのようで あっというまにいろんな言語についてかかれていく。 でもまあ、J言語はないだろうなあと思っていたら ありました! J言語 基礎最速マスター - yamblog http://d.hatena.ne.jp/yambi/20100216/1266312276
32 : アルファベットの大文字、小文字をならべた文字列 をつくるのにあれこれやっていたらこんなのができた。 'A a'=:0 7{;:65}.a. A ABCDEFGHIJKLMNOPQRSTUVWXYZ a abcdefghijklmnopqrstuvwxyz
33 : >>31 こう言うのを簡単に書ける人がうらやましい。 配列操作周りも書いてくれw >>32 ;: が大文字列、小文字列を名前として解釈するのを利用するわけですか。 アイデアですねぇ。 試しに英数字の間にある記号列をインタプリタに食わせてみたら、殆どの部分が tacitな定義として解釈されましたよw
34 : 本家のメーリングリストの購読を始めた。
35 : なんかもうすぐ次期バージョン(J7)のベータが公開されるらしい。
36 : これは、まずい。 パソコンでlog 3を求めたいです。(底は2です) - Yahoo!知恵袋 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1235210262 logを求める質問にJ言語を使えば簡単ですよという回答で 0j20":x:2^.3 1.58496250072119330535 で小数点以下20桁まで求められるというのだが... floatの精度のものを有理数にしても精度は変わらない。
37 : special codeなんですかね。 2 ^. 3 1.58496 x: 1.58496 4953r3125 としかならないですし。
38 : ああ、>>37 はあまり意味がないか。 x:抜きで計算させると↓となるので、x:が頭に付いた式は中でなんかやってるんじゃないかと。 0j20":2^.3 1.58496250072115630000 とまで書いて、ふと思いついてやってみた。 a =: 2^.3 0j20": a 1.58496250072115630000 0j20":x: a 1.58496250072119330535 2^.3はaにバインドされる前に評価されてる筈だから、^.自体元から拡張精度で計算されてるっぽい?
39 : 底が2のlog(3)をwindowsの電卓で計算すると 1.5849625007211561814537389439478 念のためmaximaでも計算。 (%i34) (fpprec:32,bfloat(log(3)/log(2))); (%o34) 1.5849625007211561814537389439478b0 0j20":x:2^.3 1.58496250072119330535 結局、J言語の計算は小数点以下13桁までしか正しくないようだ。
40 : 本当に誰も使ってないんだな 悲しくなってきた
41 : だがそれがいい
42 : まあ、特定用途向けのライブラリとか薄いっぽいし、実用しようって人間は 少ないだろうな。
43 : ついにJ7 betaが。 ttp://www.jsoftware.com/beta.htm
44 : >>43 新しい機能とか、あるのかな。
45 : 「フロントエンドが今度からhtmlとGTKベースになるとか書いてある。 で、htmlのフロントエンド開いても今ひとつ使い勝手が良くない。 ヘルプもj602のままだし。
46 : 保守 ここのところはJで作ったアプリケーションを使ってるだけで学習は進んでない。 オブジェクト指向分析設計の本を読んでるんで、暇になったらJへの適用を 試してみようと思ってる。
47 : 保守 最近はちょっとずつ"learning J"の抄訳+αをやってる。
48 : 前に (3 :'y+y')5 10 みたいに明示的定義でも名前をつけずに使えるという話があったけど 複数行の定義でもできるとは知らなかった。 (3 :0)5 y*y ) 25 さらにこんなのもありなのね。 ((3 :0)10),(3 :0)10 y+y ) y*y ) 100 20
49 : >>48 どう言うメカニズムでこんなことが起きるのか不思議ですね。 (種あかしはしないでくださいよw自分で何とか考えてみます)
50 : でもって、独り言。 携帯電話のキャリアを乗り換えたのを機にwindows mobile
51 : (>>49 続き) 搭載のスマートフォンを導入したんだが、これにJのPocket PC用を入れてみた。 入れてみてデモを走らせただけで全然使ってないがw
52 : APLはここでおk?
53 : まあいいんじゃないですか?Jのご先祖だし。
54 : HSPレベルの自己満言語?
55 : 本家サイト以外でこんなにたくさんのJ言語のコードを 見るのは初めてだ。 Category:J - Rosetta Code http://rosettacode.org/wiki/Category:J
56 : ふーん
57 : >>55 Roger Huiまで来てるし、本家メーリングリストのの出店と化してるようなw
58 : 保守 Learning Jが終わったら「テスト駆動開発入門」をJで写経してみるかと思ってる今日この頃…
59 : NB. >>1 スレ建て乙/おめ/有難うございます。 fmt_x_if_y_is_empty=. ":@[ ^: (0: = #@]) f_b_fb =. (0: = 3 5&|"0) <@;@# (;:'Fizz Buzz')"_ NB. fork です。 fbbox=: (fmt_x_if_y_is_empty&.> f_b_fb)f. NB. hook です。f. はお約束。 NB. ↑私も御挨拶代りにFizzBuzzを。>>4 さんや >>6 さんのとは少し仕様が違い, fbbox 7+i.10 NB. 等として使います(因みにFizzBuzzはこのスレで知りました)。 NB. exposure age は rosettacode からのパクり(w)。
60 : >>11 「anarchy golf http://golf.shinh.org/ の問題を解くことぐらい」 んでもって >>59 のを色々いじってたら短くなったので submit しちゃいますた。echo 使うのはインチキかもですが。 (([:(,+:/)0=3 5|])echo@;@#'Fizz';'Buzz';])"0>:i.100 洩れは通常 j504(N0 V1 V2 未導入)を使ってる(Win98SE上)ので,それだと下記(echo は j6 と同様に再定義): (([:(,+:/)0:=3 5&|)echo@;@#'Fizz'"_;'Buzz'&;)"0>:i.100 尚, (([:(,+:/)0=3 5|]);@#'Fizz';'Buzz';])&.>>:i.100 等とすると,>>4 さんや >>6 さんのに近い仕様になります。
61 : 保守を兼ねてJ言語での表示周りの Tips を何か書いてみる。 箱入り混合配列の中身が手軽に眺められるのは便利だが, 行数を食って叶わんという貴方に: ] t=: (fdir=: 1!:0) '*' NB. ←ディレクトリ一覧を例に使う (p1=: ":each(s:@)"2) t NB. 邪道だけど速効簡便法 (p2=: ( peel=: (}.~ *@$);.0^:2 )@":"2) t NB. 外枠を削る (p3=: ( rm024=: (#~ $&0 1@#) )@":"2) t NB. 横罫を削る (p4=: ( rm135=: (#~ $&1 0@#) )@p2"2) t NB. 外枠と横罫を削る (p5=: ,.&.:>"1@|:"2) t NB. 数値を縦に揃えてスッキリ (p6=: p2@p5"2) t NB. もっとスッキリ p2 <"0' OX'{~19 22 7#:~3#3 NB. どっかで X がドキュソだった訳だが 5!:1<'p1' や 5!:2<'p1' のような入れ子には使えんが, 多くの典型的な矩形箱入り配列に適用できると思うので,例えば t=: <"0 i.2 3 5 とかでもお例しを(その為に "2 が付いている)。
62 : >>53 でもRはダメっていうw 今、NARS2000をダウンロードして遊んでいます。 Amazonで注文した入門書がまだ届かないので、いろいろ試している段階です。 APLでも普通に副詞、フック、フォークがあるんですね。 Rにはこれらの機能がないので、ループや変数を使わずに記述できる範囲に制限があるのかも知れません。 それにしてもAPLを搭載したPCであるIBM 5100って凄かったんだなあと思います。 試作品が'73だそうです。 有名なAltoも'73。 Smalltalkは触ったことがないけど、 もしかしてクラスライブラリでAPLに近い配列、行列演算とか出来たんでしょうか?
63 : >>62 Smalltalk も '70年代の初期の実装では APL の影響をいくつか受けています。 現行の実装では Squeak Smalltalk にその名残がみられます。 #(1 2 3) , #(4 5 6) "=> #(1 2 3 4 5 6) " #(1 2 3) + #(4 5 6) "=> #(5 7 9) " 1 + #(1 2 3) "=> #(2 3 4) " #(1 2 3) + 1 "=> #(2 3 4) " #(1 2 3) negated "=> #(-1 -2 -3) " #(1 2 3) sum "=> 6 "
64 : もしかして、副詞の有無がRとの根本的な違いでしょうか。 +/ 1 2 3 は 1+(+/ 2 3) という具合に再帰的に適用されて制御構造の役割を果たすので、制御構造を用いた記述が不要になる。 Rでは副詞が無くなっているので、ループはダメとか言われながらも制御構造を用いた記述を捨てられない。
65 : メモリを買ったので、JとRに行列の積を計算させてみた。 スピードに圧倒的な差が出た。 4Gバイト超のメモリを積んでも、計算速度の限界のほうが先に来る。 チューリング完全なJ言語では、BLASに処理を投げるRに勝てないのかな。 b=:a+/ .*a=:((x,x)$(?(x^2)$x))%x=:1500 x<-1500 a<-matrix(sample(0:(x-1),x^2,replace=TRUE),x,x)/x b<-a%*%a
66 : >>65 「メモリを買ったので、JとRに行列の積を計算させてみた。スピードに圧倒的な差が出た。」 ベンチマーク乙。どのくらいの差が出たか情報きぼんぬ。 小ネタだが, 以前J言語のメーリングリスト(JForum)に 「ケネス・アイバーソン博士から『(固有値動詞) c. の(J言語への)実装は まだかまだか』という催促の電話がちょくちょく掛かって来る」みたいな事を Roger Hui氏が書いていたが, 結局 c. の実装は取り下げられて LAPACK addon を 使って下さいという事になった経緯がある(実際Jのデモの eigenpictures は そうなっている)から, シビアな行列演算は LAPACK を使うのが現実的かも (LAPACK は BLAS を下請けで呼ぶ)。 +/ .* の special code によるサポートも浮動小数点/複素数型については J R5.04 が最新の更新のようだし(+/ .* 以外の多くの f/ .g 例えば +./ .*. 等は LAPACK に無いのかも知れないが)。 欲を言えば lapack.dll/.so/.dylib がある時はJが自動的に橋渡しをして くれると楽なのだがデータ以外のパラメータの選択とか大変そうだしなあ。 まあ, 家庭での栄養計算みたいな小規模な行列演算とか色々な f/ .g を 試すのには今のJで良いと思います。 ところで「チューリング完全なJ言語では」って対比の仕方は, Rが チューリング完全では無いって事ですか? それはありえないんじゃないかと。 P.S.「アイバーソンからの電話」の件は最近の話ではありませんので, 心霊電話や 夢枕の話だと誤解しないようにw。
67 : >>66 レス、どうもです。 > ベンチマーク乙。どのくらいの差が出たか情報きぼんぬ。 J 1,500×1,500 15秒ほど 5,000×5,000 5分ほど R(quad core) 1,500×1,500 一瞬 5,000×5,000 10秒ほど 15,000×15,000 5分ほど でした。15,000×15,000くらいのところでメモリ使用量が4GBになったので、 Jだと4GBのメモリを積んでも恩恵が受けられないなと思ったのでした。 最初はMARS2000で5,000×5,000の計算をやってみたのですけど、 こちらは答えが表示されるまで待てませんでしたw 1,500×1,500だとExcelでも(自動再計算をオフにすれば)現実的な時間で答えが出てきました。 速度では MARS2000 < Excel2007 < J < R になるようです。 MARS2000は未成熟のフリーソフトなので仕方がないのかも知れません。 IBM製汎用機用のAPL2だったらかなりシビアな用途に使われているでしょうけど、 趣味だと触る機会などは一生得られないでしょうね。
68 : > Roger Hui氏が書いていたが, 結局 c. の実装は取り下げられて LAPACK addon を Jでも出来るんですね。 使い方もインストールの仕方も分からないですけど、 LAPACKの関数名で直接呼び出すのですか? > まあ, 家庭での栄養計算みたいな小規模な行列演算とか色々な f/ .g を > 試すのには今のJで良いと思います。 行列演算も微妙に使わなかったりします。 最初はRで+\と同じ効果を得るのに、三角行列との積を取っていたのですが、 調べてみると、cumprodという専用の関数がありました。 (中身はC言語による単純なループでした。) > ところで「チューリング完全なJ言語では」って対比の仕方は, Rが > チューリング完全では無いって事ですか? それはありえないんじゃないかと。 for,while,if,再帰がありますから、もちろんチューリング完全ではありますけどね。 ただ、Rらしい(APLやJから受け継いだと思われる)apply関数を使った記述では、 チューリング完全にはならないと思うのです。 +/、×/は、Rでは、sum、prodという単独の関数 +\、×\だと、cumsum、cumprodです。 これらを各行、各列に対して適用するのにapplyを組み合わせるところでおしまいです。 任意の関数に対して、/や\が使えるところまで行かないのです。
69 : \(^o^)/オワタ
70 : ↑Jのフレーズに見える。 エラーになるけどさw
71 : >>71 >使い方もインストールの仕方も分からないですけど、 つhttp://www.jsoftware.com/jwiki/Addons/math/lapack インストールはpackage managerから。
72 : もしかして史上もっとも稼いだ言語、APL http://d.hatena.ne.jp/kazunori_279/20090607/1244367469 あと天下のMorgan StanleyがAPLの処理系を公開している。 http://www.aplusdev.org/
73 : >>72 > あと天下のMorgan StanleyがAPLの処理系を公開している。 > http://www.aplusdev.org/ Ubuntu10.04のソフトウェアセンターでインストールできた。 1.xemacsを起動 2.Meta-x a-minor-mode 3.F4キーでインタプリタ起動 4.xemacsのメニューでフォントをKAPLに指定 5.C-c rでρ、C-c iでιなどを入力 一応、APL記号の入力表示もできた。 ちゃんと動くぞヤッホー。
74 : >>65 と同様、A+でも5,000×5,000の行列積を計算させてみた。 APLでは b←a+.×a←(x,x)ρ(?(x*2)ρx)÷x←5000 5分ほどかかった。スピードはJと同じくらいみたい。 Morgan Stanleyは、これを業務に使っていたのかな? これをオープンソースで提供するってすごいような気がする。
75 : >>72 はてなの記事 >APLという言語そのものがボトルネックとなって はどう言う意味なんだろう?
76 : >>75 amazonで本を買ってみました。 正月に読むつもりです。 APLの欠点について、 「ループが必要になるプログラムの場合、 少なくともコンパイル言語の処理スピードを基準にすると、 ほとんど停止しているといってよい状態に陥ってしまうのだ。」 との記述がありました。 A+は、 「今もモルガン・スタンレーの一部のアプリケーションに使われている。」 のだそうです。(ほとんど使われていないという意味?)
77 : 言語の表現能力とかの問題じゃなかったのか。 単にスピードが問題なら、金持ってるんだしコンパイラでも作ればよかったような気が。
78 : >>77 インタプリタであることが問題だったという著者の解釈が当を得ているかはわからない。 メモリ不足という記述もあった。 APL/J/Rなどの配列処理言語がメモリをバカ食いするのは、このスレの住人なら心当たりがあると思う。 自分にはこっちの方が問題だったように思える。 あと、APL原理主義のマネージャーが、 ループ使うより必要な処理を記述しないほう方を選んだという記述もあるw このスレの住人なら、その気持ちとか想像できない? ループ書くくらいならプログラム書かないほうがましだとか思わない? ましてやハーバード大学でアイバーソンにプログラミングを習った学生は、 最初に学んだ言語がAPLだったらしいし。
79 : 謹賀新年 今年のJの運勢は!
80 : >>78 まあ読んでないんでなんとも言えないけど、目的(金)より手段(APL)を優先する人間が ウォール街にも居るというのは意外な気が。
81 : >>80 「必要な計算」は、実は「リスクの評価」のことだから、 「計算不可能でした」という結論が都合良かったかもしれない。 シナリオの数だけループを繰り返すか、シナリオの数だけ大きな配列を作るか。 APLの文化では後者が推奨される。 他の要因もあるのだろうけど、微妙なところでAPLは戦犯認定されてしまうかも。
82 : バージョンアップ間近あげ。 J01 Beta J701a is available 7 Jan 2011 for all platforms. This is a near final release and the beta designation has been removed. The really final release will be moved from this beta page to the stable page in the next week or so. J701 Release Highlights and Overview The JFE is dead, long live the JFE! 701 is a major release (6 to 7). Minor releases (601 to 602) avoid changes which break applications. Major releases introduce incompatible changes if there is sufficient long term benefit. 701 J Engine (JE - J Language implementation) changes are incremental and compatible. 701 J Front End (JFE) changes are revolutionary! Previously the primary JFE was based on Jsoftware's proprietary WD (window driver). WD was built on Windows API and was refined and polished over more than 15 years. And for 10 years Unix users had a WD Java port. 701 abandons WD. There is risk as WD was a mature product central in so many ways to J. The replacements are as far from polished as only software version 1 can be. With your patience and contributions we believe the rough will soon be polished and WD will be just a fond memory. One significant difference is that WD was a closed and proprietary system implemented in C++ and Java. The new JFE's are open and are implemented in J and based on open products and industry standards.
83 : GUI周りが完全に変わるのか。。。 自分で作ってるスクリプトはソースに必要な設定を書くようにしてるから問題ないが。 まあ、これを機会にGTK+とかweb programmingの勉強をするのもいいかも知れない。
84 : 今でもJ504をWin98Second/9821Xc16で使っている訳だが...(笑)
85 : J701a正式リリース http://jsoftware.com/stable.htm
86 : APLなら、 (0=3|x)/x←( ̄1+ι1+9) ▲△△▲いまさらQUICK BASIC▲△△▲ >>http://hibari.2ch.net/test/read.cgi/tech/1104072815/30 > BASICの最大の利点は、エディタと実行環境が一緒くたな所にある。 > 100 DEFINT A-Z > 110 FOR I=0 TO 9 SKIP 3 > 120 PRIN I > 130 NEXT > run > Syntax Error in 120 // エラーメッセージ適当w > Ok > 110 PRINT I > run > 0 > 3 > 6 > 9 > Ok > この手軽さは今見てもすごくね?
87 : +/や×/に相当するものは、伝統的な数学の記法ではΣとΠになりますね。 そして、それ以外の演算に対しては固有の記号は用意されていない。 Iversonの記法の/は、任意の演算に対してこれが拡張されている。 この拡張が必要なものだったかどうかには疑問符を付くかもしれないですね。
88 : 今日始めたので検索したらスレがあったw まだまとめwikiとこのスレみただけの知識だが fold / filter (a cmp b) # b 無名関数は>>5 >>48 mapはどう書けばいい? フック(単項)はSコンビネータ フォーク(単項)はArrowだね floor関数が組み込みにあるのをみるとなんか感慨深い
89 : ああ、mapはf arrayでいいのか
90 : まあ、learning J をざっと流し読みすれば大まかな姿がつかめると思うよ。
91 : >>88-89 lisperの人ね。 Rのスレでは、なぜかRとschemeの類似点が強調される。 しかし、lispを使わない自分にはAPL系の言語にしか見えない。
92 : floorとceilingってIversonが提唱したものだったんだ。 知らなかった。 HPやTIの電卓には普通にある。 消費税の切り捨てとか結構便利。
93 : 俺はバッカス先生のFunction Level Programmingが試せて 実用性もある言語ってことで使ってるけど、そっち方面からの 侵入者は少ないんだろうなw
94 : >>93 > Function Level Programming Wikipediaの日本語版にも載ってない概念。 翻訳して載せない? variable-freeって、変数使わないってこと? Jってそんなパラダイムの言語なの? 今までAPLの一方言みたいなイメージしかなかった。 APLは←(代入)とか→(goto)とか見るからにダサいけど。
95 : wikipediaに書いてるのは百科事典的要約のようだし、あれを訳して 読むよりはバッカス先生のチューリング賞受賞講演を読む方がいいと思う。 (共立からでてた「ACMチューリング賞講演集」に翻訳が載ってる。) Jでどうやってfuction level なスタイルで書くかはlearning Jのチャプター 8〜11、14、15を読めばいいけど、結構前のチャプターの内容を 引用してるところ多いし、最初から読んだほうがいいと思う。 まあ、同じ人間がデザインした言語だけど、APLからJへ乗換える人 向けのチュートリアルとかアドバイスとかあるみたいだし、結構 違うんだろうな。
96 : >>89 これかな、ありがとう ttp://www.rogerstokes.free-online.co.uk/book.htm しばらくはそこと、これを眺めながら文法を覚えてみる ttp://www.jsoftware.com/help/dictionary/vocabul.htm 自分が始めたのはGLSの影響から。 J=ポイントフリーって印象はあって Haskellでポイントフリーになれたのでそろそろ挑戦してみようかなと 「ポイントフリーだから簡潔で読みやすい」←Haskellの人 「ポイントフリーだから簡潔で読みにくい」←Jの人(暗黙の定義について) 後者が真理だと思うw
97 : >>95 > (共立からでてた「ACMチューリング賞講演集」に翻訳が載ってる。) 面白そうな本を紹介していただきました。 工学部のある大学の図書館なら置いてあるという次元の本ですね。 '66〜'85なら、'79のIversonも含まれていますね。 他、ミンスキー、マッカーシー、ダイクストラ、クヌース、 ニューウェル、サイモン、コッド、ケン・トンプソン、リッチー、ヴィルト 誰でも知っているビッグネームが並んでます。
98 : アイバーソンの講演も入ってた記憶が。 >>96 Haslellは知らんけど(GLSも知らない。人?)、Jで引数なしで書くのはそんなに難しくないと思う。 読むのはアレだが、それでも解らん定義があったら、コンソールに食わせるとBOXに入った形 で返してくるんで、それ見ればたいてい読める。
99 : >>96 はアンカみす、>>90 宛 >>98 Guy L. Steele, Jrはschemeの作者の一人 今まで触ってきたのが2引数関数を2つ合成すると3引数になる世界だったので フックにより二項→単項として扱われることがあるのと 演算子のオーバーロード(スカラー/アレイ/テーブル)が 色々と動作の理解の妨げになってる感じ (2&* 1&+) i.10とか、想像を超えた動き ところで、マニュアルの、なんか重要っぽい "< _ 0 0"等の数値や_の意味がわかる人います? ttp://www.jsoftware.com/help/dictionary/d010.htm
100read 1read 1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
初心者の俺が初めて覚えるプログラム言語 (459)
XNA 質問・相談スレッド 2 (904)
パーサーとか構文解析とかその他もろもろ (110)
Visual Studio 2008 Part 21 (572)
VB超度級初心者がSQLを使いこなすまで(−−) (235)
文字コード総合スレ part7 (617)
--log9.info------------------
おまえらって要は白人コンプなんだろう? (176)
メタルが流行らないのは草食系野郎が増えたから (342)
【アニメ、同人】サブカルメタル【声優、ボカロ】 (175)
EXILEのヒロ「ヘビメタは見せかけだけで偽物」 (305)
キモ同人音楽やアニソンをメタルと呼ぶ奴 (292)
なぜ日本のメタルバンドは恥さらしばかりなのか (699)
メタラーって何でそんな排他的なの (209)
最もダサいと思うHR/HM用語挙げてけ (267)
この曲を〜に代わる新レビューサイトの設立について (268)
大音量でメタルを聴きたいときどうしてる? (126)
ぶん殴ってやりたいメタラー (176)
最強に厨二病っぽいバンド名考えようぜ2 (583)
HR/HMは2020年代2030年代に生き残れるか? (156)
まったく最近の若い奴らは・・・ (318)
KARAはメタル(マジでかっこいい) (131)
メタル聴いて人生変わった (294)
--log55.com------------------
ミスターステップアップ 【大学受験塾】
こうゆうかん
【女は】西きょうじ【ダッチワイフ】
代ゼミのスカラシップ(?)どれくらいゲットできた?
代ゼミシステム障害で全校舎フレサテ受講不可に
代ゼミサテライン
四谷学院をやめたいんだけど・・・
【北予備】北九州予備校 【努力は実る】