J言語
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2010/01/12(火) 19:17:30本家(J software)
http://www.jsoftware.com/
0002デフォルトの名無しさん
2010/01/12(火) 19:48:470003デフォルトの名無しさん
2010/01/12(火) 22:41:46言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
0004デフォルトの名無しさん
2010/01/12(火) 23:55:17FizzBuzz問題を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っぽい処理の仕方じゃないかと思う
0005デフォルトの名無しさん
2010/01/13(水) 10:27:49ふと思って試してみたんだが、explicit deffinitionは無名関数として使えるっぽい。
( 4 : '2 * x + y') / 1 2 3
で、ちゃんと期待する結果(22)が出る。
0006デフォルトの名無しさん
2010/01/17(日) 23:24:17では、ごあいさつがわりに私もFizzBuzzを。
wd&.>(<'FizzBuzz')(I.0=15|n)}(<'BUzz')(I.0=5|n)}(<'Fizz')(I.0=3|n)}<"0 n=.>:i.100
0007デフォルトの名無しさん
2010/01/19(火) 22:53:44本家のフォーラムや個人のblogにレスつけられる程じゃないんで。
FizzBuzzはそう言う書き方もあるんですね。 } のその使い方は初めて知りました。
組込みの配列処理動詞は覚えて多用すべきなんでしょうが、数が多いのと、自分の
用途(簡単な数値計算)にはあまり使わないのとで、ごく簡単なもの以外は放置状態です。
0008デフォルトの名無しさん
2010/01/19(火) 23:24:57複数の動詞の和の形のtrain (v1+v2+... +vn) が、
(v1 y)+(v2 y)+ .... +(vn y) のように働いて
くれたらなぁと思って試してみたら、実際そう動いた。
一応、trainの評価規則を確認してみると自然に
そう言う評価になるように作ってあるようだ。
うまく考えてあるなぁと感心した。
0009デフォルトの名無しさん
2010/01/20(水) 00:26:38Cなどで配列aの要素に代入する場合
a[0]=1
ですがこれと同様のことをJでかくと
a=:1(0)}a
になってわかりにくいです。
でも驚きを与えてくれる不思議な言語で結構きにいってます。
0010デフォルトの名無しさん
2010/01/20(水) 23:50:33確かに。
JやAPL流のコーディングスタイルでは配列の要素を個別に処理する事はあまりないから、デザイナーとしてはその辺の冗長さは気にしてないって事なんですかね?
> でも驚きを与えてくれる不思議な言語で結構きにいってます。
俺レベルだと、驚くよりも難解な仕様に首をひねることの方が多いですよw
今日も x { y の使い方を覚えるので一苦労しました。 左引数の構造が、
要素指定の方法によって一見バラバラに見えて、しばらく途方にくれましたよ。
0011デフォルトの名無しさん
2010/01/23(土) 07:59:59anarchy golf
http://golf.shinh.org/
の問題を解くことぐらいなので
ほんの数行のプログラムしかかいたことがありません。
0012デフォルトの名無しさん
2010/01/23(土) 14:37:02リンク先見ましたが、Jは健闘してますねぇ。
俺もなんか解いてみようとしましたが入出力の仕様がよく分からないんでやめました。
0013デフォルトの名無しさん
2010/01/23(土) 15:32:43ぜひ解いてみてください。
0014デフォルトの名無しさん
2010/01/24(日) 11:20:42でもまあ、一応自分で公開済みのソース見て考えてみますよ。
0015デフォルトの名無しさん
2010/01/26(火) 13:47:05ttp://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
46位。
意外に多い。
0016デフォルトの名無しさん
2010/01/26(火) 22:48:30D言語がCOBOLやJavaFX抜いてるとかねぇよwww
PL/IやVHDLがJより下ってのも絶対にありえん
0017デフォルトの名無しさん
2010/01/26(火) 23:23:45企業で使われてるけど趣味で使わないみたいな言語が下位になっているのでは
0018デフォルトの名無しさん
2010/01/27(水) 20:29:520019デフォルトの名無しさん
2010/01/27(水) 20:30:57受け取った2項動詞をそのまま返すだけの副詞hogeを定義する。
hoge =: 1 : 0
:
f =. +
x u y
)
で、なんか動詞を食わせて動かしてみる。
1(+ hoge)2
3
2(* hoge)4
8
(つづく)
002019つづき
2010/01/27(水) 20:37:18g =: *
2 (g hoge) 5
10
ここまでは異常なし。で…
f =: *
2 (f hoge)5
7
なぜか、hogeの中で定義したローカルな f にバインドされた動詞(+)を呼んでるっぽい。
(オチは無い。)
0021デフォルトの名無しさん
2010/01/27(水) 23:33:52いきなり、むずかしいとこにいっちゃうんですね。
もちろん、私の理解の範囲外です。
0022デフォルトの名無しさん
2010/01/30(土) 00:27:15どうもJではoperatorに動詞を食わせるとその名前が渡る場合があって、
その場合にグローバルとローカルの名前が区別できてないんじゃないか
とも思ったんですが、↓のように戻り値をtacitな定義にすると普通に
動くんで単純にそうとも言えないようです。
hoge =: 1 : 0
f =. +
u
)
まあ、とりあえずの解決策としては動詞をoperatorに食わせる前に f. で
定義に置き換えてしまえばOKなんですが、これもその動詞が $: で
自己参照してると使えないんで若干気持ち悪いです。
0023デフォルトの名無しさん
2010/01/30(土) 00:49:01と、書いたがやっぱり単純にグローバル名とローカル名の区別が付いてないっぽい。
>>22のhogeの最終行をいじって、u (hogeの左引数)を必ず評価して返すように変更すると、
>>19-20の結果が再現された。
huga =: 1 : 0
f =. +
u f.
)
>>20のhogeで普通に動いて見えるのは、多分、uにバインドされた名前 ' f ' がそのまま返って、
元のコンテキストで評価されるからなんだろう。
0024デフォルトの名無しさん
2010/02/05(金) 22:02:29a=:'N='&,":
a 7
N=N=N=N=N=N=N=7
0025デフォルトの名無しさん
2010/02/06(土) 00:23:05要するに「(m&v)をyに対してx回作用させる」と言う事のようです。
件の定義の 'N='&, の場合、yの頭に文字列'N='をx個くっつけると言うことになります。
で、全体としては ('N='&,) ": は典型的な hookで、monadとしてtacitに書くと
y ('N='&,) ": y となるので、例示の通りの動作となります。
002625訂正
2010/02/06(土) 00:28:34【正】 x m&v y ⇔ m&v^:x y
【誤】tacitに書くと
【正】explicitに書くと
0027デフォルトの名無しさん
2010/02/06(土) 11:53:212 a 7
N=N=7
のように左引数でN=の数を別に指定できます。
0028デフォルトの名無しさん
2010/02/11(木) 08:00:12説明、ありがとうございます。
そうか、単項動詞のつもりが、二項動詞になっているのか。
0029デフォルトの名無しさん
2010/02/16(火) 18:15:050030デフォルトの名無しさん
2010/02/16(火) 18:22:44Learning Jを一通りさらおうとしてるが16章の配列要素の操作の説明が略しすぎで苦労した。
dictionaryも凝った例で読みにくいし、自分でいちいちテストデータを考えて動詞の機能を
試す羽目に。
正直ちゃんとした日本語の解説書か、英文でいいから普通の形式の仕様書が欲しい。
0031デフォルトの名無しさん
2010/02/20(土) 18:50:34あっというまにいろんな言語についてかかれていく。
でもまあ、J言語はないだろうなあと思っていたら
ありました!
J言語 基礎最速マスター - yamblog
http://d.hatena.ne.jp/yambi/20100216/1266312276
0032デフォルトの名無しさん
2010/02/23(火) 00:51:29をつくるのにあれこれやっていたらこんなのができた。
'A a'=:0 7{;:65}.a.
A
ABCDEFGHIJKLMNOPQRSTUVWXYZ
a
abcdefghijklmnopqrstuvwxyz
0033デフォルトの名無しさん
2010/02/24(水) 19:26:26こう言うのを簡単に書ける人がうらやましい。
配列操作周りも書いてくれw
>>32
;: が大文字列、小文字列を名前として解釈するのを利用するわけですか。
アイデアですねぇ。
試しに英数字の間にある記号列をインタプリタに食わせてみたら、殆どの部分が
tacitな定義として解釈されましたよw
0034デフォルトの名無しさん
2010/03/03(水) 10:55:180035デフォルトの名無しさん
2010/03/05(金) 12:07:320036デフォルトの名無しさん
2010/03/06(土) 09:38:58パソコンでlog 3を求めたいです。(底は2です) - Yahoo!知恵袋
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1235210262
logを求める質問にJ言語を使えば簡単ですよという回答で
0j20":x:2^.3
1.58496250072119330535
で小数点以下20桁まで求められるというのだが...
floatの精度のものを有理数にしても精度は変わらない。
0037デフォルトの名無しさん
2010/03/06(土) 11:59:322 ^. 3
1.58496
x: 1.58496
4953r3125
としかならないですし。
0038デフォルトの名無しさん
2010/03/06(土) 12:24:13x:抜きで計算させると↓となるので、x:が頭に付いた式は中でなんかやってるんじゃないかと。
0j20":2^.3
1.58496250072115630000
とまで書いて、ふと思いついてやってみた。
a =: 2^.3
0j20": a
1.58496250072115630000
0j20":x: a
1.58496250072119330535
2^.3はaにバインドされる前に評価されてる筈だから、^.自体元から拡張精度で計算されてるっぽい?
0039デフォルトの名無しさん
2010/03/06(土) 21:16:071.5849625007211561814537389439478
念のためmaximaでも計算。
(%i34) (fpprec:32,bfloat(log(3)/log(2)));
(%o34) 1.5849625007211561814537389439478b0
0j20":x:2^.3
1.58496250072119330535
結局、J言語の計算は小数点以下13桁までしか正しくないようだ。
0040デフォルトの名無しさん
2010/03/16(火) 21:52:11悲しくなってきた
0041デフォルトの名無しさん
2010/03/16(火) 22:31:190042デフォルトの名無しさん
2010/03/17(水) 10:56:25少ないだろうな。
0043デフォルトの名無しさん
2010/03/25(木) 23:50:46ttp://www.jsoftware.com/beta.htm
0044デフォルトの名無しさん
2010/03/28(日) 12:11:58新しい機能とか、あるのかな。
0045デフォルトの名無しさん
2010/03/28(日) 21:16:40で、htmlのフロントエンド開いても今ひとつ使い勝手が良くない。
ヘルプもj602のままだし。
0046デフォルトの名無しさん
2010/04/13(火) 14:44:13ここのところはJで作ったアプリケーションを使ってるだけで学習は進んでない。
オブジェクト指向分析設計の本を読んでるんで、暇になったらJへの適用を
試してみようと思ってる。
0047デフォルトの名無しさん
2010/06/05(土) 00:11:56最近はちょっとずつ"learning J"の抄訳+αをやってる。
0048デフォルトの名無しさん
2010/07/05(月) 00:51:43(3 :'y+y')5
10
みたいに明示的定義でも名前をつけずに使えるという話があったけど
複数行の定義でもできるとは知らなかった。
(3 :0)5
y*y
)
25
さらにこんなのもありなのね。
((3 :0)10),(3 :0)10
y+y
)
y*y
)
100 20
0049デフォルトの名無しさん
2010/07/06(火) 21:35:29どう言うメカニズムでこんなことが起きるのか不思議ですね。
(種あかしはしないでくださいよw自分で何とか考えてみます)
0050デフォルトの名無しさん
2010/07/06(火) 21:37:55携帯電話のキャリアを乗り換えたのを機にwindows mobile
0051デフォルトの名無しさん
2010/07/06(火) 21:45:14搭載のスマートフォンを導入したんだが、これにJのPocket PC用を入れてみた。
入れてみてデモを走らせただけで全然使ってないがw
0052デフォルトの名無しさん
2010/07/07(水) 00:10:180053デフォルトの名無しさん
2010/07/07(水) 16:07:120054デフォルトの名無しさん
2010/07/07(水) 19:35:270055名無しさん@そうだ選挙に行こう
2010/07/10(土) 09:32:53見るのは初めてだ。
Category:J - Rosetta Code
http://rosettacode.org/wiki/Category:J
0056名無しさん@そうだ選挙に行こう
2010/07/10(土) 19:39:470057デフォルトの名無しさん
2010/07/13(火) 13:00:45Roger Huiまで来てるし、本家メーリングリストのの出店と化してるようなw
0058デフォルトの名無しさん
2010/09/13(月) 08:43:05Learning Jが終わったら「テスト駆動開発入門」をJで写経してみるかと思ってる今日この頃…
0059IDIHARA, Sessya
2010/10/19(火) 13:06:42fmt_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)。
0060I., S.
2010/10/20(水) 00:01:19んでもって >>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 さんのに近い仕様になります。
0061I., S.
2010/10/23(土) 22:12:42箱入り混合配列の中身が手軽に眺められるのは便利だが,
行数を食って叶わんという貴方に:
] 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 が付いている)。
0062デフォルトの名無しさん
2010/11/22(月) 22:54:42でもRはダメっていうw
今、NARS2000をダウンロードして遊んでいます。
Amazonで注文した入門書がまだ届かないので、いろいろ試している段階です。
APLでも普通に副詞、フック、フォークがあるんですね。
Rにはこれらの機能がないので、ループや変数を使わずに記述できる範囲に制限があるのかも知れません。
それにしてもAPLを搭載したPCであるIBM 5100って凄かったんだなあと思います。
試作品が'73だそうです。
有名なAltoも'73。
Smalltalkは触ったことがないけど、
もしかしてクラスライブラリでAPLに近い配列、行列演算とか出来たんでしょうか?
0063デフォルトの名無しさん
2010/11/23(火) 00:00:10Smalltalk も '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 "
0064デフォルトの名無しさん
2010/11/23(火) 16:37:51+/ 1 2 3
は
1+(+/ 2 3)
という具合に再帰的に適用されて制御構造の役割を果たすので、制御構造を用いた記述が不要になる。
Rでは副詞が無くなっているので、ループはダメとか言われながらも制御構造を用いた記述を捨てられない。
0065デフォルトの名無しさん
2010/11/27(土) 21:52:59スピードに圧倒的な差が出た。
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
0066I., S.
2010/11/29(月) 06:43:25ベンチマーク乙。どのくらいの差が出たか情報きぼんぬ。
小ネタだが, 以前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。
0067デフォルトの名無しさん
2010/11/29(月) 22:11:04レス、どうもです。
> ベンチマーク乙。どのくらいの差が出たか情報きぼんぬ。
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だったらかなりシビアな用途に使われているでしょうけど、
趣味だと触る機会などは一生得られないでしょうね。
006867の続き
2010/11/29(月) 22:13:29Jでも出来るんですね。
使い方もインストールの仕方も分からないですけど、
LAPACKの関数名で直接呼び出すのですか?
> まあ, 家庭での栄養計算みたいな小規模な行列演算とか色々な f/ .g を
> 試すのには今のJで良いと思います。
行列演算も微妙に使わなかったりします。
最初はRで+\と同じ効果を得るのに、三角行列との積を取っていたのですが、
調べてみると、cumprodという専用の関数がありました。
(中身はC言語による単純なループでした。)
> ところで「チューリング完全なJ言語では」って対比の仕方は, Rが
> チューリング完全では無いって事ですか? それはありえないんじゃないかと。
for,while,if,再帰がありますから、もちろんチューリング完全ではありますけどね。
ただ、Rらしい(APLやJから受け継いだと思われる)apply関数を使った記述では、
チューリング完全にはならないと思うのです。
+/、×/は、Rでは、sum、prodという単独の関数
+\、×\だと、cumsum、cumprodです。
これらを各行、各列に対して適用するのにapplyを組み合わせるところでおしまいです。
任意の関数に対して、/や\が使えるところまで行かないのです。
0069デフォルトの名無しさん
2010/11/30(火) 00:10:420070デフォルトの名無しさん
2010/12/22(水) 11:50:12エラーになるけどさw
0071デフォルトの名無しさん
2010/12/22(水) 11:55:59>使い方もインストールの仕方も分からないですけど、
つhttp://www.jsoftware.com/jwiki/Addons/math/lapack
インストールはpackage managerから。
0072デフォルトの名無しさん
2010/12/23(木) 18:52:06http://d.hatena.ne.jp/kazunori_279/20090607/1244367469
あと天下のMorgan StanleyがAPLの処理系を公開している。
http://www.aplusdev.org/
007372
2010/12/23(木) 23:25:13> あと天下の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記号の入力表示もできた。
ちゃんと動くぞヤッホー。
007472
2010/12/24(金) 22:11:07APLでは
b←a+.×a←(x,x)ρ(?(x*2)ρx)÷x←5000
5分ほどかかった。スピードはJと同じくらいみたい。
Morgan Stanleyは、これを業務に使っていたのかな?
これをオープンソースで提供するってすごいような気がする。
0075デフォルトの名無しさん
2010/12/25(土) 09:34:14はてなの記事
>APLという言語そのものがボトルネックとなって
はどう言う意味なんだろう?
0076デフォルトの名無しさん
2010/12/26(日) 16:23:12amazonで本を買ってみました。
正月に読むつもりです。
APLの欠点について、
「ループが必要になるプログラムの場合、
少なくともコンパイル言語の処理スピードを基準にすると、
ほとんど停止しているといってよい状態に陥ってしまうのだ。」
との記述がありました。
A+は、
「今もモルガン・スタンレーの一部のアプリケーションに使われている。」
のだそうです。(ほとんど使われていないという意味?)
0077デフォルトの名無しさん
2010/12/27(月) 08:44:50単にスピードが問題なら、金持ってるんだしコンパイラでも作ればよかったような気が。
0078デフォルトの名無しさん
2010/12/27(月) 20:40:27インタプリタであることが問題だったという著者の解釈が当を得ているかはわからない。
メモリ不足という記述もあった。
APL/J/Rなどの配列処理言語がメモリをバカ食いするのは、このスレの住人なら心当たりがあると思う。
自分にはこっちの方が問題だったように思える。
あと、APL原理主義のマネージャーが、
ループ使うより必要な処理を記述しないほう方を選んだという記述もあるw
このスレの住人なら、その気持ちとか想像できない?
ループ書くくらいならプログラム書かないほうがましだとか思わない?
ましてやハーバード大学でアイバーソンにプログラミングを習った学生は、
最初に学んだ言語がAPLだったらしいし。
0080デフォルトの名無しさん
2011/01/01(土) 10:15:32まあ読んでないんでなんとも言えないけど、目的(金)より手段(APL)を優先する人間が
ウォール街にも居るというのは意外な気が。
0081デフォルトの名無しさん
2011/01/01(土) 15:04:12「必要な計算」は、実は「リスクの評価」のことだから、
「計算不可能でした」という結論が都合良かったかもしれない。
シナリオの数だけループを繰り返すか、シナリオの数だけ大きな配列を作るか。
APLの文化では後者が推奨される。
他の要因もあるのだろうけど、微妙なところでAPLは戦犯認定されてしまうかも。
0082デフォルトの名無しさん
2011/01/23(日) 06:49:06J01 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.
0083デフォルトの名無しさん
2011/01/23(日) 10:10:08自分で作ってるスクリプトはソースに必要な設定を書くようにしてるから問題ないが。
まあ、これを機会にGTK+とかweb programmingの勉強をするのもいいかも知れない。
0084デフォルトの名無しさん
2011/01/23(日) 14:14:450085デフォルトの名無しさん
2011/02/01(火) 10:41:10http://jsoftware.com/stable.htm
0086デフォルトの名無しさん
2011/02/01(火) 21:48:23(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
> この手軽さは今見てもすごくね?
0087デフォルトの名無しさん
2011/02/17(木) 20:19:36そして、それ以外の演算に対しては固有の記号は用意されていない。
Iversonの記法の/は、任意の演算に対してこれが拡張されている。
この拡張が必要なものだったかどうかには疑問符を付くかもしれないですね。
0088デフォルトの名無しさん
2011/02/26(土) 03:00:23.16まだまとめwikiとこのスレみただけの知識だが
fold /
filter (a cmp b) # b
無名関数は>>5 >>48
mapはどう書けばいい?
フック(単項)はSコンビネータ
フォーク(単項)はArrowだね
floor関数が組み込みにあるのをみるとなんか感慨深い
0089デフォルトの名無しさん
2011/02/26(土) 03:08:37.560090デフォルトの名無しさん
2011/02/26(土) 09:11:55.220091デフォルトの名無しさん
2011/02/26(土) 09:21:32.00lisperの人ね。
Rのスレでは、なぜかRとschemeの類似点が強調される。
しかし、lispを使わない自分にはAPL系の言語にしか見えない。
0092デフォルトの名無しさん
2011/02/26(土) 10:03:08.33知らなかった。
HPやTIの電卓には普通にある。
消費税の切り捨てとか結構便利。
0093デフォルトの名無しさん
2011/02/26(土) 10:21:08.78実用性もある言語ってことで使ってるけど、そっち方面からの
侵入者は少ないんだろうなw
0094デフォルトの名無しさん
2011/02/26(土) 20:33:44.66> Function Level Programming
Wikipediaの日本語版にも載ってない概念。
翻訳して載せない?
variable-freeって、変数使わないってこと?
Jってそんなパラダイムの言語なの?
今までAPLの一方言みたいなイメージしかなかった。
APLは←(代入)とか→(goto)とか見るからにダサいけど。
0095デフォルトの名無しさん
2011/02/26(土) 22:57:09.34読むよりはバッカス先生のチューリング賞受賞講演を読む方がいいと思う。
(共立からでてた「ACMチューリング賞講演集」に翻訳が載ってる。)
Jでどうやってfuction level なスタイルで書くかはlearning Jのチャプター
8〜11、14、15を読めばいいけど、結構前のチャプターの内容を
引用してるところ多いし、最初から読んだほうがいいと思う。
まあ、同じ人間がデザインした言語だけど、APLからJへ乗換える人
向けのチュートリアルとかアドバイスとかあるみたいだし、結構
違うんだろうな。
0096デフォルトの名無しさん
2011/02/26(土) 23:34:42.44ttp://www.rogerstokes.free-online.co.uk/book.htm
しばらくはそこと、これを眺めながら文法を覚えてみる
ttp://www.jsoftware.com/help/dictionary/vocabul.htm
自分が始めたのはGLSの影響から。
J=ポイントフリーって印象はあって
Haskellでポイントフリーになれたのでそろそろ挑戦してみようかなと
「ポイントフリーだから簡潔で読みやすい」←Haskellの人
「ポイントフリーだから簡潔で読みにくい」←Jの人(暗黙の定義について)
後者が真理だと思うw
0097デフォルトの名無しさん
2011/02/26(土) 23:40:57.83> (共立からでてた「ACMチューリング賞講演集」に翻訳が載ってる。)
面白そうな本を紹介していただきました。
工学部のある大学の図書館なら置いてあるという次元の本ですね。
'66〜'85なら、'79のIversonも含まれていますね。
他、ミンスキー、マッカーシー、ダイクストラ、クヌース、
ニューウェル、サイモン、コッド、ケン・トンプソン、リッチー、ヴィルト
誰でも知っているビッグネームが並んでます。
0098デフォルトの名無しさん
2011/02/27(日) 01:05:23.15>>96
Haslellは知らんけど(GLSも知らない。人?)、Jで引数なしで書くのはそんなに難しくないと思う。
読むのはアレだが、それでも解らん定義があったら、コンソールに食わせるとBOXに入った形
で返してくるんで、それ見ればたいてい読める。
0099デフォルトの名無しさん
2011/02/27(日) 08:58:24.73>>98
Guy L. Steele, Jrはschemeの作者の一人
今まで触ってきたのが2引数関数を2つ合成すると3引数になる世界だったので
フックにより二項→単項として扱われることがあるのと
演算子のオーバーロード(スカラー/アレイ/テーブル)が
色々と動作の理解の妨げになってる感じ
(2&* 1&+) i.10とか、想像を超えた動き
ところで、マニュアルの、なんか重要っぽい
"< _ 0 0"等の数値や_の意味がわかる人います?
ttp://www.jsoftware.com/help/dictionary/d010.htm
0100デフォルトの名無しさん
2011/02/27(日) 10:05:31.130〜2はそのまんまの意味で、_は無限大(どんな次元の引数でも受付ける)
順番は(単項の場合)(二項の左引数)(〃右引数)の順番だったと思う。
で、そう言うのを定義するのに何の意味があるかというと、例えば3次元の引数を1次元の
引数を受付ける動詞に評価させようとすると、Jは自動的に引数を1次元の配列にバラして
その動詞に食わせる。これは(多分)全ての動詞に適用されるんで、オーバーロード
と言うよりは、Jそのものの仕組みとして覚えたほうがいいと思う。
詳しくはLJ(learning J)のチャプター7を見れば分かる。
0101デフォルトの名無しさん
2011/02/27(日) 10:07:06.27http://www.elliscave.com/APL_J/Learning_J.pdf
0102デフォルトの名無しさん
2011/02/27(日) 10:40:19.44これは 2&* が 二項動詞になってるのが罠だな。
x 2&* y は2&*をyにx回適用するって意味になる。
例えば、
0 (2&*) 3
3
1 (2&*) 3
6
2 (2&*) 3
12
0103デフォルトの名無しさん
2011/02/27(日) 23:04:29.701足して2倍する動詞ということなら
2&* @ (1&+) i.10
2 4 6 8 10 12 14 16 18 20
とか
(2 * 1 + ]) i.10
2 4 6 8 10 12 14 16 18 20
かな。
0104デフォルトの名無しさん
2011/02/28(月) 07:14:19.56該当の章読みました&PDFはないのかと思ってたので助かりました
(2 * 1 + ]) i.10は思いつかなかった、解説ありがとう。
ユーザ定義の動詞へ与えるべき適切なRankだとか
片方がdyadicな動詞として利用されることも考えて
@:と&:を使い分けるといった辺りは、慣れないと難しそうな感じ
@と@:の違いも微妙なところだし
ifの代わりに`と@.を使うのがJ的なのかなとfactを習作
(*$:@:<:`1:@.(=1:))9
(3 :'*/+/\y$1')9 NB.再帰を直接使わない版
ググったら
(*$:@:<:)^:(1&<)9
が出てきて`すら使われてなかった
0105デフォルトの名無しさん
2011/02/28(月) 07:46:51.08fact=.*/@:>:@i.
とすると
fact 8 9
が大変なことになるので
fact =. */@:>:@i."0
とする必要があるね
(*$:@:<:)^:(1&<)も同じ弱点がある、動詞の設計は難しいな
0106デフォルトの名無しさん
2011/03/03(木) 06:58:20.21>>102は>>25にも同じ話が出てた。
Learning Jには10.3.4に
x (u ^: w) y means ((x&u) ^: w) y
と、さらっと書いてある
ちょっと@:の左右逆のやつがほしくなったのだが
q =. @:~
Q =. 4 : 'y @: x'
((2&+) Q (2&*)) 3
などはうまくいかなかない
rp =. ^~はうまくいくのに違いがまだよくわからない
それにしてもLearning Jは思ってたよりも大分楽しいw
たまに突き放されるが、とても良く書いてあって安心して読める
0107デフォルトの名無しさん
2011/03/03(木) 08:16:26.621年でx(m&v)yの意味を忘れてたのは秘密だw
Q =. 4 : 'y @: x'
は、
Q =. 2 : 'v @: u'
とすれば多分うまく動く。
: の左引数は定義する関数が取る引数の数と種類によって変えなければならない。
上のように2項で動詞を引数に取る場合は、2にする。あと、動詞を取りうる引数のローカル名は
左引数がu、右引数がvとなる。
この辺は、LJのch.12,13あたりに書いてあると思う。
0108デフォルトの名無しさん
2011/03/03(木) 08:25:43.110109デフォルトの名無しさん
2011/03/03(木) 08:28:17.94これは身の程を知らない書き方だなw
俺みたいな半端なのがみたらそう見えるだけで、ちゃんとした奴が
見ればスッキリまとまって見えるのかも知れない。
0110デフォルトの名無しさん
2011/03/03(木) 23:06:49.20ありがとうございます。
先をみれば、同じものがTHENって名前で出ていました
まだ全体像は見えないですが
uとかvとかRankとかは、Jの型システム的なものっぽいですね
(1&+) q (2&*) q (10&-) 5
1たして、2かけた数を、10から引く
予想に反して、括弧は不要だった
>>95のPDFファイル(英語)
ttp://www.stanford.edu/class/cs242/readings/backus.pdf
読むのはすぐに諦めたw
自分みたいにBNFぐらいでしか知らない人は多いんじゃなかろか
0111デフォルトの名無しさん
2011/03/05(土) 19:25:26.78-.はブール値を意識して作られているみたいなので
1-yと定義されてるが
C言語の~を同様に表記すると
-1-yなので
Cでは~(-10)は9、-(~10)は11
Jでは-. - 10は11、- -. 10は9
となってしまうのに気づいた
0112デフォルトの名無しさん
2011/03/07(月) 17:42:26.99> 自分みたいにBNFぐらいでしか知らない人は多いんじゃなかろか
子供時代にBASICに触れて、学生時代にC、PASCALに触れた古い人間なら、
Fortranの設計者という認識だと思う。
自分はラムダ算法について理解していないから、日本語で読んでもあまり理解できない。
(情報系の学科出ている人はこのあたりを基礎知識として持っているんでしょうね。)
チューリングマシンについてだけ、
「状態」がBASICの「行」で、「無限長のテープ」がBASICの「任意長の配列」に相当する
というアナロジーで捉えている。
バッカス講演の導入部には以下のようなことが書かれているのかなと思った。
BASICのような手続き型言語は表記の自由度が高すぎて問題があったから、
構造化という制限された記法が導入された。
ラムダ算法も、表記の自由度が高すぎて問題がある。
関数型言語にも、より改善された表記法が必要だ。
APLには、内積、外積、reduction("/"のこと)が実装されているけど、それだけでは十分ではない。
全体として手続き型言語のままだ。
APLでは→(goto)を使わなければならないのだけど、
Jではフォーク、フック、トレインで行うということかな?
0113デフォルトの名無しさん
2011/03/07(月) 18:22:51.97Cの「~」相当はこっちだと思う。
B =: 26 b.
B - 10
9
- B 10
11
0114デフォルトの名無しさん
2011/03/07(月) 20:08:17.80なるほどFORTRANの人ですか
FORTRANは全く触ったことがないですが、
数値計算は超枯れてる、と教授が言ってました
しかし、λを学ぶ大学ってのはかなりいいところなんじゃないでしょうか
情報系でしたがそんな講義など無く、自分は独学です
基本的なルールさえ覚えたら、わりと読めるようになりますよ
APLもJを覚えたら少し触ってみたいです
gerundのボックス表記は、
λの表記の一種のDe Bruijn Indexと1:1対応してる気が(逆順)。偶然かも?
Sコンビネータはλλλ3 1 (2 1)。0-indexにして2 0 (1 0)
それぞれ2(λの数-1)から引いて(0 2 (1 0))
func =. *`(1&+)`[
(func @. (0 2;1 0)) 10 NB.Sコンビネータ(gerund)
(* (1&+)) 10 NB.Sコンビネータ(フック)
>>113
ありがとうございます
ttp://www.jsoftware.com/help/release/bdot.htm
bit処理はand/or/shiftしか無いのかと思ってました
もう、お手軽ビット計算インタプリタを探さなくて済みます
0115デフォルトの名無しさん
2011/03/07(月) 21:22:34.38> 数値計算は超枯れてる、と教授が言ってました
バッカス講演から30年経過しているわけですけど、
結果はむしろFORTRANの圧勝だったのかもしれません。
LAPACKがFORTRANで記述されていて、
そのLAPACKに処理を投げるRは、APLやJより高速なのですから。
RでもLAPACKに処理を投げない部分はCで書かれている。
でも、この部分はマルチコアCPUの恩恵もGPUの恩恵も受けられない。
FORTRANはCすら超える成功を収めているんじゃないかと思っているところです。
0116デフォルトの名無しさん
2011/03/09(水) 23:53:54.67「i.」に1,2, ... ,n のリストを与えると
1 x 2 x ... x n の多次元配列ができる。
ということはこの配列の要素数はnの階乗かな?
f =:3 :'# , i. >: i. y'
f 7
5040
! 7
5040
そうなっている、しかし10までしか使えない。
0117デフォルトの名無しさん
2011/03/11(金) 05:50:00.7412!<2^32<13!なんで4バイトの整数だと、表せる自然数の階乗のmaxは12!
i.がスタックを使うならばもっと小さい値でオーバーフローする
0118デフォルトの名無しさん
2011/03/24(木) 17:49:42.99ttp://www.jsoftware.com/source.htm
これでARMでも動くようになったらうれしい。
0119デフォルトの名無しさん
2011/03/24(木) 19:31:55.69祝!
A+に続く2つめの快挙。
正統性から言って、JsoftwareはMorgan Stanleyより上だ。
0120デフォルトの名無しさん
2011/03/28(月) 20:28:14.76> これでARMでも動くようになったらうれしい。
iPodやAndroid端末で使えるようになれば良いと言う意味ですよね?
現状では遊べるアプリが少なすぎます。
0121デフォルトの名無しさん
2011/04/01(金) 15:25:15.98http://www.jsoftware.com/alpha.htm
0122デフォルトの名無しさん
2011/04/02(土) 17:14:23.93今気づいたけど、スレが立ってもう1年以上経過してるんだな。
0123デフォルトの名無しさん
2011/04/02(土) 22:33:54.450124デフォルトの名無しさん
2011/04/03(日) 06:48:09.520125デフォルトの名無しさん
2011/04/10(日) 15:14:05.20キー配列がus&uk決めうちになっていたorz
0126デフォルトの名無しさん
2011/04/10(日) 18:00:46.90程度なんですが、それよりは強力なんですか?
0127デフォルトの名無しさん
2011/04/10(日) 20:46:36.57NARS2000は、教科書のAPLより拡張されていて、APL2やJの機能が取り込まれている様子。
遊びには十分だけど、仕事に使えるような完成度には達していないと思う(最新バージョンが0.0.2.22)。
一方でIBMのAPLは、Jが登場する遙か以前に汎用機で実用に供されていた。
しかし、DOS/V版には640KBの壁があるだろうから、そのままで実用にならない点はNARS2000と同じ。
A+なら、Moran Stanleyが自社の業務のために作ったものだから、実用的にも十分なものになっているハズw
0128デフォルトの名無しさん
2011/04/17(日) 10:16:25.90表示する問題がでた。
J言語でやってみたが、制限時間3秒では半分ぐらいまでしか計算できないようだ。
wd@>4&p:^:(<100)32416187567x
0129デフォルトの名無しさん
2011/04/17(日) 16:25:03.120130デフォルトの名無しさん
2011/04/19(火) 17:36:56.90鯖のOSがBSDだった。死にたい。
0131デフォルトの名無しさん
2011/05/16(月) 06:29:23.940132デフォルトの名無しさん
2011/06/11(土) 06:42:05.440133保守上げを兼ねて
2011/07/19(火) 05:53:35.01APL強化(rat APLとかか?)
Scheme実装(後にkに流入)
A+開発
Jのプロトタイプ
(Jソースのビョーキモなプリプロセッサマクロの元祖はUTF-8だと6{.'ホイットニー'でなく18{.'ホ(ry'←これがオチ。kx.com/q/c/c/k.h とか)
0134デフォルトの名無しさん
2011/08/23(火) 08:02:01.650135デフォルトの名無しさん
2011/08/24(水) 19:35:27.450136デフォルトの名無しさん
2011/08/26(金) 10:22:56.650137デフォルトの名無しさん
2011/09/09(金) 23:38:32.43相変わらず英語キーボード決めうち。
しかし、実はAPLキーボードって、英語とも日本語とも配列が異なるキーボードだったんだな。
http://upload.wikimedia.org/wikipedia/commons/a/a9/APL2-nappaimisto.gif
A+は、英語キーボードが元になっている。
http://www.aplusdev.org/keyboard.html#top
0138デフォルトの名無しさん
2011/09/15(木) 00:13:16.08例 16ba0
160
逆はどうやったら出ますか?
またはこのn進数⇔10進数変換の計算ドリルはJ言語でできないでしょうか?
0139138
2011/09/15(木) 00:16:20.03計算ドリルは進数変換の学習プログラムという意味です
教えてくれませんか?orプログラム作ってくれませんか?
0140デフォルトの名無しさん
2011/09/15(木) 06:04:41.01d6=: (>:@<.@^. # [) #: ] NB.Base x rep of decimal integer y
例)
16 d6 65534
15 15 15 14
後はテーブル索くとかで各桁を文字に変換すればいいんじゃないか?
0141デフォルトの名無しさん
2011/09/15(木) 07:30:52.10ありがとうございます。^o^
0142デフォルトの名無しさん
2011/09/15(木) 08:40:05.93だとJのフレーズとして動くなw
0143141
2011/09/15(木) 13:39:47.77新たな要望ですが>>138>>139で書いてる学習プログラムを(誰か)作ってくれませんか?
「または」と書いてましたが「そして」の間違いでした。
ネットに16,10,2進数⇔16,10,2進数変換の練習プログラムはあるんですが
それではn進数ではできないので。
暗算の特訓(http://www.vector.co.jp/soft/winnt/edu/se413829.html)
n進数変換⇔m進数変換(or10進数変換)プログラムがあったら良いなということで。
J言語はwikipediaの説明の中でn進数からの変換が載ってたので
他の言語で書くよりもJ言語は効率的に書けるとのではと思ったのです。
そこで検索してたところ、このプログラムとは関係ないのですが、「J言語を使ってのの小数点付きのN進法基数変換」の論文?を見つけました
J言語も他の言語もまったくといっていいほど分からないので
>>140の意味もこれも分からないわけなですが
http://homepage3.nifty.com/asagaya_avenue/apl/association/2008/nakano_nov_2008.pdf#search='10j j言語 進法'
0144デフォルトの名無しさん
2011/09/15(木) 13:53:24.01http://japla.sakura.ne.jp/jlang/tutorial/doc/jqr_all.pdf
鈴木義一郎著「J 言語による統計分析」 ノート(J 6 対応版)
http://japla.sakura.ne.jp/jlang/tutorial/doc/oldoak_2.pdf
?鈴木 義一郎 「J言語のクイック・リファレンス
http://japla.sakura.ne.jp/jlang/tutorial/doc/jqr_new_suzuki.pdf
0145I., S.
2011/09/18(日) 08:52:57.98NB. filename: c:\test\pbp.ijs 基数変換
NB. cf. hibari.2ch.net/test/read.cgi/tech/1263291450/138-150 付近
9!:7 '+++++++++|-' NB. 箱描画文字を環境非依存に。ネット発信用。
NB. 名前空間(例はPersonalBasePracticeの積り)を切換えとくと後々便利かも。
cocurrent 'pbp'
NB. 続く
0146I., S.
2011/09/18(日) 08:55:08.05NB.*i2bl dyad 整数yをx進表現の各桁(箱入)に変換
NB.*i2bs dyad 整数yをx進表現の箱入文字列に変換(36進迄)
NB.*i2ss dyad 整数yをx進表現の空白区切文字列に以下同文
i2bl=: (#.inv)each
i2bs=: {&(':'-.~;0 14{;:48}.a.)each@i2bl NB. Thanks! >>32
i2ss=: ;:inv(on)i2bs
NB. 続く
0147I., S.
2011/09/18(日) 09:09:16.44NB.*bl2n dyad x進表現の箱入数値リストyを数値に変換
NB.*bs2n dyad x進表現の箱入文字列yを数値に変換(36進迄)
NB.*ss2n dyad x進表現の空白区切文字列以下同文
bl2n=: #.every
bs2n=: do@(":@[,'b'"_,])every NB. J R6 以降は "_ 省略可。
ss2n=: (bs2n cutopen)
NB. 名前空間を <'base' に戻すが <'pbp' 内の語も引続き見付かるようにしておく。
cocurrent 'base'
coinsert 'pbp'
0148I., S.
2011/09/18(日) 09:24:09.64require 'c:\test\pbp.ijs'
16 i2bl 123 456 7890
16 i2bs 123 456 7890
16 i2ss 123 456 7890
16 bl2n 1 2 3;4 5 6;15 15
16 bs2n '123';'456';'ff'
16 ss2n '123 456 ff'
0149I., S.
2011/09/18(日) 09:35:48.00require'c:\test\pbp.ijs'
Ran=.2+?10#,:15,5#200
echo'Q1. i2ss の右側の10進数を,左端の数値を基数とした表現に変換せよ。'
echo'正解は,問題の行の上にカーソルを移動して2回ENTERを押すと表示される。'
echo;:inv@([,'i2ss'"_;])&>/@split"1":each Ran
echo''
Ran=.2+?10#,:15,5#200
echo'Q2. 左端の数値を基数とした ss2n の右側の表現を10進数に変換せよ。'
q=.''''"_
echo(":@[,' ss2n '"_,q,i2ss,q)&>/@split"1 Ran
echo''
0150I., S.
2011/09/18(日) 09:56:17.08] loadd 'c:\test\pbptest.ijs'
] 16 i2bl 123 456 7890
+----+------+---------+
|7 11|1 12 8|1 14 13 2|
+----+------+---------+
] 16 i2bs 123 456 7890
+--+---+----+
|7b|1c8|1ed2|
+--+---+----+
] 16 i2ss 123 456 7890
7b 1c8 1ed2
] 16 bl2n 1 2 3;4 5 6;15 15
291 1110 255
] 16 bs2n '123';'456';'ff'
291 1110 255
] 16 ss2n '123 456 ff'
291 1110 255
0151I., S.
2011/09/18(日) 09:59:38.51load 'c:\test\pbpgen.ijs'
Q1. i2ss の右側の10進数を,左端の数値を基数とした表現に変換せよ。
正解は,問題の行の上にカーソルを移動して2回ENTERを押すと表示される。
8 i2ss 157 81 54 56 41
7 i2ss 59 62 196 48 80
...
2 i2ss 129 39 147 48 45
Q2. 左端の数値を基数とした ss2n の右側の表現を10進数に変換せよ。
9 ss2n '12 84 175 30 11'
16 ss2n '7 53 b 91 5d'
...
9 ss2n '180 18 211 144 182'
おしまい
0152デフォルトの名無しさん
2011/09/20(火) 00:18:37.90プログラムの文を>>145の「NB. filename: c:\test\pbp.ijs 基数変換」
から>>149の最後の「echo''」の文までをプログラムとしてペーストしてプログラムファイルとしました。
プログラムを置く所をC:\Users\○○\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\〜では
start menuにスペースがあるためj言語のウィンドウでは
「] loadd 'c:\〜\pbptest.ijs'を入力しましたが、スペースの前までしかまでしか読んでくれませんでした
それでドキュメントフォルダにプログラムを置いてみたのですが読見込めず
windows7x64でやってるのですが、メモ帳で書いてファイル名の中に.ijsをつけてたのですが
テキストにしかならんしため、関連付けをやっても駄目で
拡張子を表示する方法で.ijsにすることができました。
しかしそれでも読み込めませんでした。
「not found: c:/test/pbptest.ijs
|file name error: scriptd
| 0!:1 y[4!:55<'y'」
と表示されます。
それでpbptestのtestを削って
] loadd 'c:\test\pbp.ijs'でやってみましたところ読み込んでくれました
ところが
ss2n=: (bs2n cutopen)
NB. filename: c:\test\pbptest.ijs 繝・せ繝医Moadd 'c:\test\pbptest.ijs' 縺ィ縺吶k縲・
require 'c:\test\pbp.ijs'
の所で読み込みが停止し
not found: c:/test/pbp.ijs
|stack error: fexist
| fexist y
と表示され止ってしまいました。
0153デフォルトの名無しさん
2011/09/20(火) 01:56:36.88] 160;16 i2bl 123 456 7890を実行すると
+----+------+---------+
|7 11|1 12 8|1 14 13 2|
+----+------+---------+ときちんと表示してくれました。
ここまで実行してたウィンドウはjconsole.exeで、そこで直接実行させてました。
今度はプログラムをウィンドウにコピペしたところ
同じ所で停止し「not found: c:/test/pbp.ijs」を表示し
ウィンドウズの小さな窓が出て
「jconsole.exeは動作を停止しました
問題が発生したため、プログラムが正しく動作しなくなりました。
プログラムは閉じられ、解決策がある場合はwindowsから通知されます。」が表示され
プログラムの終了ボタンが付いててクリックしたら終了してしまいました。
そこで今度は灰色jのj64-701conで動かしました。
先と同様にプログラムのコピペをした後、jconsole.exeの時と同じエラーを出して終了しました。
今度はウィンドウ内で] loadd 'c:\test\pbp.ijs'を実行してみました(j64-701conを起動させてます)
これもjconsole.exeと同じエラーをはいて終わりました。
結局jcopnsoleと同じ動作をしてくれました。
0154デフォルトの名無しさん
2011/09/20(火) 01:58:55.97この文章を書き始めたときはそれぞれ違う動作をしてたのでそれを書き込んでたのですが
僕がj言語入力ミスをしたのがわかったのでそのせいで違う動作をしてたわかりました。
ここまでくるまでたくさんのいろいろな無駄なことをしてしまいました。
話を元に戻しまして、例のコマンドの動作検証はまだ一コマンドしか試してないのですが
プログラムを最後まで読みこまなかったのですが、これでいいんでしょうか?
基本中の基本の話に戻ってしまいますが
j64-701(j701もですが)の黄色のjのj64-701brkと灰色のjのj64-701conと黄緑色のjのj64-701gtkと水色のjのj64-701jhs
の違いは何なんでしょうか?
よくわからず使ってましたが、どこかにこの基本的なことを教えてくれる日本語のサイトまたは英語のサイトはないんでしょうか?
http://www.jsoftware.com/のヘルプサイトにこの辺のことは書いてあったのでしょうか?
使い方がよくわからなくてあまりできませんでした。
英語の成績はひどすぎたので翻訳サイトを使わないと読めません。
0155すみません。
2011/09/20(火) 02:02:58.98すみません。
大事なことを忘れてました、
こんな僕のために長いプログラムを考えてくださって
ありがとうございました。
0156デフォルトの名無しさん
2011/09/20(火) 05:07:37.48最初のロード文以外は
実行できました。答えもちゃんその通りでました。
>>151は
大方実行できました。
ただload 'c:\test\pbpgen.ijs'は実行できませんでした。
not found: c:/test/pbpgen.ijs
|file name error: script
| 0!:0 y[4!:55<'y'
とエラーが出てしまいます。
以降はできました。これでよかったでしょうか?
Q1
8 i2ss 157 81 54 56 41
235 121 66 70 51
7 i2ss 59 62 196 48 80
113 116 400 66 143
2 i2ss 129 39 147 48 45
10000001 100111 10010011 110000 101101
Q2
9 ss2n '12 84 175 30 11'
11 76 149 27 10
16 ss2n '7 53 b 91 5d'
7 83 11 145 93
9 ss2n '180 18 211 144 182'
153 17 172 121 155
0157デフォルトの名無しさん
2011/09/20(火) 05:44:48.38> 正解は,問題の行の上にカーソルを移動して2回ENTERを押すと表示される。
がわかりません。
コピペすると
9 ss2n '180 18 211 144 182'
153 17 172 121 155
8 i2ss 157 81 54 56 41
235 121 66 70 51
7 i2ss 59 62 196 48 80
113 116 400 66 143
...
|spelling error
| ...
| ^
2 i2ss 129 39 147 48 45
と表示されます。ここでENTERキーを押すと次の行に
10000001 100111 10010011 110000 101101
と表示されした。
>カーソルを移動して2回ENTERを押すと
ってどういう状況を説明されてるんでしょうか?
変な動作になった理由がわかりました。
夫々は「おっとおっと」じゃなくって「それぞ」だったんですね。
それぞれを名前をつけて保存してって事は二つプログラム入ってたんですね。
>>149からは次のプログラムだったんですね。だから動かなかったんですね。
>>148も各行の「16」以下も設問だったんですね
なんか僕はずいぶんアホアホでした゚(゚´Д`゚)゚
0158I., S.
2011/09/20(火) 07:42:46.49役立ってるか逆に苦労させてるか心配です。自己解決された点も多い様ですが取り急ぎ。
【1】Jのアイコンまとめ(Win関係のみ)
JR7: jhsIDE(jhs.bat 水色) gtkIDE(jgtk.bat 緑) CUI(jconsole.exe 灰色) (黄色はjの実行を中断させる jbreak.bat) Win2K以降(但しgtkIDEは原則XP以降)
JR6: JwdwIDE(j.exe 水色) JwdpIDE(javaw.exe+j.jar/JavaRTE 赤) CUI(jconsole.exe) (黄色はjの実行を中断させる jbreak.bat) Win2K以降
JR5: JwdwIDE(j.exe 水色) JwdpIDE(javaw.exe+j.jar/JavaRTE 赤) CUI(jconsole.exe) jbreakなし Win95以降
JR4: JwdwIDE(j.exe 水色) WinのCUIなし jbreakなし 64bit版なし Win95以降
JR3: JwdwIDE(j.exe 赤?) Win3以降
0159I., S.
2011/09/20(火) 07:45:52.83ってのは、実は上記の内 JwdwIDE; JwdpIDE; gtkIDE での操作(jhsIDEでの操作は忘れた)。jconsole.exe/CUIでは仰る通り1行づつコピペして下さい。
本当はJの入門にはR6のJwdwIDEが適していて、R7は既習者やajax開発者向きかもです。R7のjhs/gtkIDEはすんなり導入できればめでたいが、トラブルにハマるとハードル高いかも。R6とR7は言語仕様に於いては殆ど違いなし。
【3】ファイルは全部で3つ: pbp.ijs; pbptest.ijs; pbpgen.ijs
それぞれ(スマソw)の始まりor続きには NB. filename: c:\test\自分ファイル名.ijs と書いてある行がある。
0160デフォルトの名無しさん
2011/09/20(火) 08:18:05.13ありがとうございます。
時間が出来たときに確かめてみたいとおもいます。
0161I., S.
2011/09/21(水) 19:18:27.58JODの開発者John Baker 2011-2-12の記事:
JODのページ/ソフトウェアカテゴリの書庫
J 7.01 が今や貴方のブラウザで動く
The JOD Page/Archive for the 'Software' Category
J 7.01 Now Playing in your Browser
(続く)
0162I., S.
2011/09/21(水) 19:22:34.54皆さん良くご存じの通り新ソフト必ずしも改良ソフトならず(刷新は冒険でもある事をお忘れなく)。しかし今回のは意義ある変更である。
(続く)
0163I., S.
2011/09/21(水) 19:38:14.40As we all know new software is not necessarily better software, (remember that risky bit), but in this case the changes make sense.
[スクリーンショット]
J 7.01 JHSが動作している画面(ブラウザとしてクロームを使用)
J 7.01 running JHS on Chrome
(続く)
0164I., S.
2011/09/21(水) 19:45:08.17これはJSOFTWARE社も十分自覚していて、Javaベースの可搬IDE[Jwdp]にも、WinIDE[Jwdw]と同等の機能を整備しようとして来た。だが不幸にも、JavaIDEはJavaそれ自身と同様、期待に十分応えられなかった。
(続く)
0165I., S.
2011/09/21(水) 19:51:33.09JSOFTWARE was well aware of this and tried to offer the features of their Windows IDE with a portable Java based IDE. Unfortunately the Java IDE, like Java itself, failed to live up to expectations.
(続く)
0166I., S.
2011/09/21(水) 19:58:39.66それでは「この開発環境はWin/Linux/Mac/スマホ/他多くのIT機器できちんと動き、最先端の技術と機能を具え、環境間の互換性もバッチリです」なーんていうIDEをどうにかすれば提供できるもんだろうか……。
唯一無二の答えなど無いから、JSOFTWAREは2通りのIDEを用意するという賢明な決定をした。JHSとJGTKである。
(続く)
0167I., S.
2011/09/21(水) 20:05:31.34So how do you provide a _state of the art portable user IDE_ that runs well on Windows, Linux, the Mac, smart phones and various IGadgets. There is no single answer so JSOFTWARE wisely decided to offer two IDEs: JHS and JGTK.
(続く)
0168I., S.
2011/09/21(水) 20:11:54.62従来のWinIDE似なのはJGTK[JwdwにもJwdpにも近い]。JGTKはLinux寄りだが他環境でも動く。
JGTKの起動は遅いが起動してしまえば[従来のWinIDEと]パフォに顕著な違いは感じられない。エディタは従来のWinIDEのより優秀。初版にしては上出来。皆で鍛え上げて行くべし。
(続く)
0169I., S.
2011/09/21(水) 20:22:40.46I run it on WinXP and Win7 machines all the time. JGTK takes longer to load than the older Windows IDE but once it's up and running I don't see significant performance differences.
The JGTK editor is superior to the older Windows editor and I love the side bar and UNIX style code tagging. For a first version JGTK is a nice bit of work that will only improve as J programmers and users pound away on it.
(続く)
0170I., S.
2011/09/21(水) 20:29:15.40旧WinIDEより速い。オーバヘッドも小さくてブラウザを通しているのを屡(しばしば)忘れる。優れたユーザインタフェイスというものはユーザにあれこれ働き掛けず、存在を感じさせないのだ[超訳]。
(次回最終回)
0171I., S.
2011/09/21(水) 20:42:18.04JHS is amazingly effective under Google's Chrome browser. It comes up in a flash and is as zippy or faster than the older Windows IDE.
Even better this webby goodness imposes minimal burdens. The JHS web server is often one of the smaller processes running on my machines.
I have been doing the bulk of my JOD update work with JHS and I frequently forget I'm using a browser! _Good user interfaces, unlike politicians, get out of your face!_
[以下割愛スマソ>John Baker]
(ひとまず糸冬)
0172I., S.
2011/09/21(水) 22:21:21.87"安定版のダウンロードページ"
J701とJ602は共に安定版である。J701には特筆すべき改革が導入されており、新参ユーザであろうが古参であろうが、未開拓技術の最先端での挑戦を望む者向けである。
J602は資産継承重視のユーザと、事を(特にウィンドウズ環境に於いて)緩徐に運びたいと望む者向けである。
www.jsoftware.com/stable.htm
"Download Stable"
J701 and J602 are both stable releases. J701 introduces significant change and is for users, new or old, who want the challenge of the bleeding edge.
J602 is for legacy users and those who want, especially in Windows, a gentler experience.
0173デフォルトの名無しさん
2011/09/22(木) 06:16:43.48そういやJ7は取ってきたきりで使ってないな。
0174GUIにしてみますた
2011/09/24(土) 06:56:13.43NB. filename: xbase2ch.ijs hibari.2ch(ry)tech/1263291450/138-
require'c:\test\pbp.ijs'
XB2cF=: 0 : 0
pc xB;
xywh 6 6 86 12;cc Toi static;
xywh 6 18 86 12;cc Kai edit;
rem form end;
)
xbrun=: 3 : 0
'Suru Odai'=: wdselect 'DoreniSIRU?';<'T)o 10';'F)rom 10'
if.Suru do.
wd XB2cF
syutudai''
wd'pshow' end.
)
xB_cancel=: wd bind'pclose'
xB_Kai_button=: 3 : 0
if. A -: Kai do.
wd'set Kai'
syutudai'' end.
)
syutudai=: 3 : 0
'B D'=: ":each t=. 2+ ? 15 19
X=: i2ss/ t
'A Q'=: Odai{ (D;X,'(',B,')=?') ,: X;D,'=?(',B,')'
wd 'set Toi *', Q, Zuru#A
)
Zuru=: 1
xbrun'' NB. Kokomade
0175取り説1/2
2011/09/24(土) 07:06:18.96xbase2ch.ijs: J R6までの Jwd で基数変換の練習を行うGUIアプリ。wってレベ(ry
起動法:
load'xbase2ch.ijs' … IDE内から
j.exe xbase2ch.ijs … コマンドラインから。IDE併走
j.exe -jijx xbase2ch.ijs … 単独アプリモード。IDE無
javaw.exe -jar j.jar xbase2ch.ijs … JavaRTE上で実行
尚、以前のレスの c:\test\pbp.ijs が必要。パスは適宜直して下さい。
使い方:
1.起動するとPopUpが出て、どれに汁? T:10進への変換 F:10進からの変換
と訊くので選ぶ。
2.Formが開いて出題。正解を入れると次出題。
(続く)
0176取り説2/2
2011/09/24(土) 07:09:10.183.最初は正解も晒すモードになっているので、勝手が分ったら
ソースの Zuru=:1 を Zuru=:0 にするか、IDE配下ならIDEのijx窓に移って
ダイレクトに Zuru=:0 と打ち込むと直後の出題から隠す。
4.余計な空白・全角・英大文字は不正解となる。
5.ESCで終了(右上の「[x]閉じる」ボタンはハンドラを略したので効かない)。
6.尚、ソースをIDEのエディタで開きalt+E EでFormEditorを起動すると
出題・回答Formの体裁を貴方好みに変えられます。
)
0177デフォルトの名無しさん
2011/12/18(日) 17:02:31.12http://www.jsoftware.com/jwiki/Community/Conference2012
この手カンファレンスで参加費1000カナダドルて、安いのか高いのかよく分からんw
0178デフォルトの名無しさん
2011/12/18(日) 17:29:02.09http://www.murc.jp/fx/index.php
76,960円
0179デフォルトの名無しさん
2011/12/19(月) 09:38:50.520181デフォルトの名無しさん
2012/01/06(金) 20:31:26.680182デフォルトの名無しさん
2012/01/24(火) 22:23:36.70http://www.jsoftware.com/pipermail/chat/2012-January/004647.html
記号使いまくりのJに対応したソフトキーの実装で悩んでるみたいだが、
「IMEはgraffiti for android推奨」で済むような気が。。。
0183デフォルトの名無しさん
2012/01/29(日) 10:22:14.61android marketに上げるらしい。
0184デフォルトの名無しさん
2012/02/09(木) 09:11:18.58PLaSM
http://www.dia.uniroma3.it/~paoluzzi/plasm502/
バッカスのFL言語の図形処理向け拡張らしい。
0185デフォルトの名無しさん
2012/02/14(火) 18:58:14.99そのサイトのギャラリーをながめていたらpov-rayを思い出した。
0186デフォルトの名無しさん
2012/02/15(水) 14:13:24.40http://www.amazon.co.jp/Geometric-Programming-Computer-Aided-Design/dp/0471899429
0187デフォルトの名無しさん
2012/03/12(月) 22:00:38.89http://hayabusa3.2ch.net/test/read.cgi/livemarket1/1327362360/324
0188デフォルトの名無しさん
2012/03/13(火) 09:47:46.35MSの回し者乙
と思う
0189デフォルトの名無しさん
2012/03/15(木) 17:10:14.58http://jsoftware.com/pipermail/source/2012-March/000372.html
ヘルプ関係はJsoftwareのサイトに読みに行くみたいなんで、
パケ代が問題になる人は注意。
0190I., S.
2012/03/18(日) 08:43:13.52Kona is the open-source implementation of the K programming language.
If you don't know APL, then this is the place to start.
K is an ASCII-based APL. KDB (or Q) is the popular database software built on top of K.
K was originally designed by Arthur Whitney and Kx Systems.
Kona is unaffiliated with Kx.
0191デフォルトの名無しさん
2012/03/18(日) 15:49:27.07ttp://www.math.bas.bg/bantchev/place/k.html
0192デフォルトの名無しさん
2012/03/19(月) 20:50:21.35埋められない絶大な差があるような気がする。
A+とNARS2000くらいの差が。
元々商品だったJとは比べものにならないのじゃないかと思う。
0193デフォルトの名無しさん
2012/03/22(木) 10:42:37.47差について詳しく。
0194デフォルトの名無しさん
2012/03/23(金) 20:14:39.57>>67,74に挙げた話を繰り返しているだけですよ。
A+がJと同等のパフォーマンスを発揮したのに対して、
NARS2000はエクセルにも劣るものだった。
0195デフォルトの名無しさん
2012/05/30(水) 19:36:30.07の簡単な問題をJでやってみた。
A: GPA計算
echo 0j10":(([:+/'FDCBA'i.])%#);}.<;._2 stdin''
B: さかさま辞書
echo@>(/:|.&.>)}.<;._2 stdin''
0196デフォルトの名無しさん
2012/05/31(木) 12:59:07.40の問題もJでやってみた。
A: センター採点
echo(>./,<./)+/"1=;}.<;._2 stdin''
B: リモコン
echo(<.@(%&10)+0 1 2 3 4 1 2 3 3 2{~10&|)|@-/".}:stdin''
0197デフォルトの名無しさん
2012/05/31(木) 19:09:31.95theory of array関係の論文もサワリだけ読んで放りっぱなしだし。
■ このスレッドは過去ログ倉庫に格納されています