2009-03-01から1ヶ月間の記事一覧
倉橋由美子の夢をみた。なんで彼女は死んでしまったのだろう、と夢の中で思ったという程度の夢なのですが、今日の日経の文壇往来にいま女性作家たちによって再評価されていると書かれていた。むかーし読んで面白かったのに、いまではその多くが絶版で、生き…
最近、J言語に夢中で、J言語についてばかり書いていますが、これでは日記の意味がなくなりつつあるので、ちょっと工夫です。 はてなは過去日付で書けますので、今後2001年2月あたりにまとめて書くようにします。 APLやJ言語は数学に近くて、概念をどのように…
わたしとしての完成品を書いておきます。 ボックスから出す必要はないと思うのでその分短くなっています。 結果の表現は10 x 10の表にします。 Windows版のJ602での結果です。 - FizzBuzz=: 3 : 0 (FizzBuzz') (:i.y ) 10 10$FizzBuzz 100 +----+----+----+-…
J言語でFizzBuzz(http://recompile.net/2007/05/jfizzbuzz.html)というところに、satzeさんが - 例えばこんなのどうでしょうか? ' ' (('|' E. B) # i.#B) } B=.}.}:1{":(FizzBuzz') (:i.100 (1行)もしくは, FizzBuzz=: 3 : 0 ' ' (('|' E. B) # i.#B) } …
J言語にE.(メンバーオブ)という動詞があって、配列の中の配列の位置を返します。0なら「なし」で、1が有り。なぜ大文字のE.(大文字イードット)かと言うと、数学の記号の∈(含む含まれる)というのに似ているからでしょうか。 'co' E. 'cocoa' 1 0 1 0 0 という…
昨日の記事でJ言語でFizzBuzzをやりました。はっきり言って難しかった。配列で考えること自体は慣れの問題だと思うのですが、ボックスがやっかい。じつはずいぶん試行錯誤をしました。 1;2;'Fizz';4;'Buzz';6;7 +-+-+----+-+----+-+-+ |1|2|Fizz|4|Buzz|6|7|…
FizzBuzz問題というのがあって、1から100までの数字で3で割り切れる場合は'Fizz'、5で割り切れる場合は'Buzz',15で割り切れる場合は'FizzBuzz'、その他はそのままの数字をアウトプットせよ、というのだったと思う。APLやJ言語で解いた例もないわけではないの…
移動平均とはたとえば月次データが何年分か溜まった後に大きな傾向を見るために6か月平均とか12か月平均とかを1月から12月、2月から翌年1月、というように対象期間を移動させながら計算していくものです。年度合計の比較でいいじゃないか、と思いがちですが…
APLでは丸にたてぼうやよこぼうの配列を逆順にしたり(reverse)、回転したり(rotate)、シフトしたり(shift)する動詞(関数)があります。 これがJ言語では|.(たてぼうドット、パイプラインドット)の役割です。また、前回紹介した"(クオート、ランクコンジャンク…
APLでもJ言語でもデータを結びつけるのは,(カンマ)という動詞(関数)です。配列を連結するにはいろんなレベルの連結が考えられますが、J言語では"(クオート、ランクコンジャンクション、ランク接続詞)を使うことにより、若干わかりやすくなっています。 'abc'…
こぎつねこんこん l8 cdefg4g4 af<c>ag4r4 af<c>ag4r4 gffffeee ededceg4 gffffeee eddec4r4 聖者が街にやってくる l8 r2r8cef g2r8cef g2r8cef g4e4c4e4 d2r8eed c2e4g4 gf&f4r4aa g4e4c4d4 c2.r4 げんこつやまのたぬきさん aa8.a16a8.a16b a8.g16e8.e16e2 aggg a</c></c>…
下の表現わかりますか? J言語です。 1 o.o.%3 0.866025 2 o.o.%3 0.5 o.1は3.14159ですなわち(パイ)です。 %3は1÷3の意味ですなわち0.333333です。 ということはo.%3はです。 一方、1 o.はsin(サイン)、2 o.はcos(コサイン)ですので、上記の結果になります…
2の3乗というときふつうの言語では2^3というように^(キャレット、べき乗)を使います。J言語でも^(キャレット)です。APLではこれが★(アスタリスク)で2★3のように書きます。さて、J言語の^(キャレット)を単項動詞として使うとどうなるか。 ^1 2.71828 どこかで…
西川利男の本でAPLのユーザ定義関数作成の例がありました。 ▽TEST1 X 'TOTAL:' +/x 'AVERAGE:' (+/X)÷(ρX) ▽ これをこのままではJ言語では動きませんでした。とりあえず動くものを作ったのが下記のリストです。 test1 =: 3 : 0 2 2 $ 'total'; (+/y) ; 'aver…
APL/J言語で単純な連立方程式を解く場合は、%.(パーセントドット、Matrix divide, Matrix inverse)を使います。 2x + 3y = 3 4x - 2y = 14 a 2 3 4 _2 b 3 14 b %. a 3 _1 というわけでxは3、yは-1です。これでは解説になってませんね。この逆行列を求める動…