ときどきの雑記帖 めぐりあい電脳空間編

最新ページへのリンク
目次ページへのリンク

一つ前へ 2010年10月(下旬)
一つ後へ 2010年11月(中旬)

ホームへ

2010年11月10日

■_

デバッグやってたらこっちをやる時間がががが

■_


ポインタを理解できないプログラマはもういらない 
242 仕様書無しさん [sage] 2010/11/06(土) 10:21:44 ID: Be:
    ポインタや再帰が理解できないって何なの?
    何か簡単なサンプルコードを、1ステップずつ追っていけば理解できることじゃない。
    理解できないのではなく、理解しようとしていないだけだと思う。 

243 仕様書無しさん [sage] 2010/11/06(土) 10:26:34 ID: Be:
    >>242
    Cパズルブック全問正解できるなら言ってもいい。 

244 仕様書無しさん [sage] 2010/11/06(土) 12:53:19 ID: Be:
    Cパズルブックってナンダロウと思って検索して適当に
    書評サイト見たらボロクソの評価されてた 

245 仕様書無しさん [sage] 2010/11/06(土) 13:14:43 ID: Be:
    Cパズルブックをけなす奴は、C言語完璧だと思っていたのに、全然できなかったやつだとおもってほぼ間違いない。
    C言語やポインタの理解を深めるには良書。 

246 仕様書無しさん [sage] 2010/11/06(土) 17:21:10 ID: Be:
    >C言語は初心者にとっては、きわめて分かりづらいところの多い、
    >頭を悩ます言語です。このC言語の性質を利用というか悪用して、
    >パズルとしてしまった本です。
    >趣旨はそうだったのですが、本のできは非常に悪く、こんなものを
    >「パズル」といわれると、ニコリに申し訳がたちません。パズルは
    >もっと高等かつ高貴なもので、重箱の隅を突っつくようなことばか
    >りに終始しているのは、パズルを冒涜しているとしか言えません。
    >この本は、C言語の学習にはまったく役に立ちません。数あるCの
    >本の中で一番役に立たない本でしょう。パズルとして極めて低級で
    >あるだけでなく、Cとしての程度も低いです。要するに、読んでも
    >害にしかならない最悪の本です。

    酷すぎるw

247 仕様書無しさん [sage] 2010/11/06(土) 17:27:59 ID: Be:
    たしかに酷いな。事実に基づく記述がなく、印象操作に終始してる。 

248 仕様書無しさん [sage] 2010/11/06(土) 18:16:30 ID: Be:
    ここまで酷いと逆にどんな問題が書いてあるのか気になるが、取り寄せる程でもないしな… 

249 仕様書無しさん [sage] 2010/11/06(土) 18:59:20 ID: Be:
    この書評を書いた人は打ちのめされたんだろうなあ。 

250 仕様書無しさん [] 2010/11/06(土) 19:43:08 ID: Be:
    このパズルができたら、より優れたモノが出来るってこと? 

251 仕様書無しさん [sage] 2010/11/06(土) 20:09:42 ID: Be:
    >>250
    できない奴はポインタを理解できていない。 

252 仕様書無しさん [sage] 2010/11/07(日) 00:03:59 ID: Be:
    理解しなくても、使えりゃいいんだよ。

253 仕様書無しさん [sage] 2010/11/07(日) 01:15:59 ID: Be:
    何をもって理解してるといえるのかっていうのも微妙だな
    ポインタパズルが解けたり、連結リストが作れれば理解してるといえるとかっていうと
    どうもしっくりこない 

254 仕様書無しさん [sage] 2010/11/07(日) 01:26:37 ID: Be:
    ポインタのポインタが理解できたら、ポインタは理解できたと思っていいんでは中廊下 

255 仕様書無しさん [sage] 2010/11/07(日) 01:31:14 ID: Be:
    ポインタは使う目的があるから意味がある。パズルなんて無意味だろ。 

256 仕様書無しさん [sage] 2010/11/07(日) 01:55:24 ID: Be:
    関数ポインタ「ダブルポインタがやられたようだな」
    クラスメンバへのポインタ「ククク…奴は四天王の中でも最弱…」
    ポインタに対するconst「>254ごときに負けるとは我ら四天王の面汚しよ…」 

257 仕様書無しさん [sage] 2010/11/07(日) 02:02:29 ID: Be:
    ポインタの前に、参照をやっつけたw 

258 仕様書無しさん [sage] 2010/11/07(日) 06:45:00 ID: Be:
    int (*a)[N] ← 隠しボス 

四天王ネタをみつけたということでw

■_

■_ 五つの

いずれは訳されるだろうけど、いつになるだろう?


5 things you didn't know about ... multithreaded programming

5 things you didn't know about ... multithreaded programming

Summary:
Multithreaded programming is never easy, but it does help to understand how the JVM 
processes subtly different code constructs. Steven Haines shares five tips that will 
help you make more informed decisions when working with synchronized methods, volatile 
variables, and atomic classes.

■_ しかし

あのひとたちはなんでああなんだろう(謎)

完全に遮断してしまわない自分もあれだけど。

2010年11月09日

■_

イブニングで前号から連載の始まっている「しばちゅーさん」がなかなかよい。

■_ むかむかむか

あまりいい話を聞かないこの会社の宣伝メールですが、 今回という今回はわたしもいい加減頭に来ました。


号外◆※ご確認※ カードローンに【 抵 抗 】をお持ちの方へ。【楽天ブックス】(2010/11/08)


12345678901234567890123456789012345
当メールは楽天ブックスニュースをご購読の方へお送りしております。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
★☆【楽●天】楽天ブックスニュース(号外)[2010_11_08] ☆★
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

こんにちは、楽天ブックスです!

楽天グループ、楽天銀行の『スーパーローン』のご紹介と
楽天ブックスのオススメ情報をご案内いたします。


━━━━━━━★ 楽天グループ おすすめキャンペーン ★━━━━━━━

楽天ブックスをご利用のみなさま、こんにちは。楽天銀行です。

本日は ≪入会特典ポイント付≫ 個人向けカードローンのご案内です。

皆さん、「カードローン」=「怖い」「必要ない」
と思われたことはございませんか?

…じつは、そう感じている方、本当に多いんです。
悲しいです…(>_<)

しかし…

まだまだ、多くの方に「使いやすさ」や「安心感」を伝えきれていないのも、
現実なんですよね。

今回は皆さんに、「カードローンって本当は使いやすいものなんだ!」って
ことをお伝えしたく、ご案内させていただきました。

どうか1、2分お付き合いくださいませ。

お急ぎの場合は、こちらからどうぞ↓
 http://rd.rakuten.co.jp/rn/book/(以下略)

★==================================================================★

楽天銀行のカードローンは、

楽天のIDをお持ちの方なら、

入力が難しそう & 面倒臭そう なカードローンのお申込が

楽天会員情報を引き継いで、 カ ン タ ン に 完 了 で き ち ゃ い ま す!

ご入会ポイントをもらうにしても、入力が楽じゃなきゃいやですよね(^^;


ぜひ、お試しくださいね^^
 http://rd.rakuten.co.jp/rn/book/(以下略)

…えー?

ご入会ポイントってなにー!?って思われた方 ↓↓をチェック!


■なんと!! お 申 込 & ご 入 会 だ け で …
─────────────────────────────
1,000円分の楽天スーパーポイント差し上げます!!
─────────────────────────────
もちろん、「お金、困ってないわ」って方も、この機会に入会しておいて、
必要な時に財布にこっそり忍ばせてください♪

ぜひ、この機会にお申込をご検討ください♪ こちらからどうぞ★
 http://rd.rakuten.co.jp/rn/book/(以下略)

しかし、、、

皆さん、1,000ポイントだけじゃ、物足りないですよね!?

■ さ ら に ご 利 用 い た だ く と …
─────────────────────────────
最大30,000円分の楽天スーパーポイント差し上げます。
─────────────────────────────
楽天会員情報を引き継いで、かんたんにお申込♪ ↓↓
 http://rd.rakuten.co.jp/rn/book/(以下略)

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
もらったポイントは、楽天ブックスや楽天市場でお役立てくださいね^-^

ポイントがもらえて、お得なことはわかったけど…
お金を借りるって不安…。
それに、どう便利なのか分からない(=使う機会がわからない)。

たしかに、そうですよね。

実際にご利用されている方々に、直接生の声を聞いてみました。
このほうが、分かりやすいですもんね♪

先日スーパーローン会員の方に、アンケートを行いました。※当行調べです。

「楽天銀行のスーパーローン、使うタイミングはどんなときですか?」
───────────────────────────────────
★ 第1位 ★ 給料日前のちょっとお財布がさみしいとき…(38歳男性、他)

★ 第2位 ★ 夜遅くに銀行のATMが使えないとき…(29歳女性、他)
───────────────────────────────────
★ 番外編 ★ 6ヶ月定期券を購入したいとき(手持ちがナイ!)(27歳女性)


…なるほど、意外にも「急な入り用」にちょこっと使って、
返せるときにさっと返済する、という使い方が多いようですね。
場合によっては、クレジットカードよりお得なことも!?

もちろん、「他社でのお借入れをおまとめしたい!」という方も多いです。
クレジットカードとは違う「安心感」をぜひお試しくださいね。

今は必要ないけど、<いざ> というときのために。
1枚もっていると、意外と <安心> です。

どうぞ、このご案内を機にお申込いただけましたら幸いです。
 http://rd.rakuten.co.jp/rn/book/(以下略)

最後までお読みいただき、まことにありがとうございました。
以下略

会員登録もしていないのになんで書店の新着情報のメールでカードローンの案内なんぞ受け取らねばならんのかと (読んでしまった自分もあれですがw)

しかし、話はこれで終わらないのです

号外◆【お詫び/再送】 カードローンに【抵 抗】をお持ちの方へ【楽天ブックス】(2010/11/09)

楽天ブックスニュース	

当メールは楽天ブックスニュースをご購読の方へお送りしております。

※
昨日配信いたしましたメールの本文内に、表現の不備が発生しておりました。
訂正のうえ、再度配信させていただきます。

この度は誠に申し訳ございませんでした、謹んでお詫び申し上げます。


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
★☆【楽●天】楽天ブックスニュース(号外)[2010_11_09] ☆★
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

こんにちは、楽天ブックスです!

楽天グループ、楽天銀行の『スーパーローン』のご紹介と
楽天ブックスのオススメ情報をご案内いたします。

(以下同じ)

なにが「表現の不備」かと。

いい加減受け取りを解除しようと思ったのですが、解除のための URL にいってみると なーんかいやな予感が(笑) どうしたもんだか。

■_ プログラミングは退屈?


Re: Is Programming Boring?

Re: Is Programming Boring?

    * From: "Mallor" <SeaFuncSpam@xxxxxxxxx>
    * Date: 6 Sep 2006 15:30:22 -0700


JShrager@xxxxxxxxx wrote:

    In another thread Tim Bradshaw repeatedly claims: "programming is
    *hard* and
    *boring*" I'm okay with "Hard" because it's relative to your skill
    level, so I know that he's wrong from the outset. But I've never ever
    heard anyone (at least not a programmer) say that programming is
    boring!


The vast majority of industrial programming is boring. "Industrial
prorgramming" is a never ending ritual of looking up stuff in some API
that some bonehead got paid to make you suffer through. It's piles of
stuff that doesn't work because it hasn't been tested. So you get to
do the hard work of making it work and getting it tested. There is
generally no elegance or aesthetic satisfaction in any of this. It's
just reams and reams of "ad hoc" engineering problems.


(略)

"Real work" in programming is like your pipettes in chemistry. Deadly
boring.

    I get to make the highest tech machines there are do my will;


Oh really now?? You're definitely not a build engineer.

    I get to create new things that no one has ever created before


Industrial programming is usually creating something that the Nth slob
has already made for the Pth time. Only this time it has to be owned
by Microsoft. And it has to be the new API rather than the old API, so
that Microsoft can force people to fork over for upgrades. "Churn" is
the most boring thing in programming of all. It keeps people stuck at
the ad hoc engineering level indefinitely.

    -- even if
    they're spread sheets! -- I get to amaze my colleagues and lab mates,
    and save them hours, days, years of what would be REALLY boring work
    for them, and I get to live inside a real detective story (with bugs,
    not killers).


There's a lot to be said for problems that are at the difficulty of a
mere scripting language. One gets a lot of new functionality for not
much work. This has been part of what has enabled me to cough out a
CMake build over the past 10 months. It's scripting; if it had been
some kind of arcanely painful C++ interface, I wouldn't have done it.

    So, does ANYONE (aside from Tim) actually think that programming is
    boring?!?!?


Yep. You have a very skewed perspective on programming. Judging from
your examples, I would say that you have done no real systems
engineering.


Cheers,
Brandon Van Every

Re: Is Programming Boring? : programming

"Real work" in programming is like your pipettes in chemistry. Deadly boring. ねえ。まあそんなものか。

■_ リボンインターフェース

【第1回】「リボンは使いにくい」は誤解か:Office 2007/2010「リボン」攻略法 【第2回】攻略編 ~ リボンが好きになる方法7:Office 2007/2010「リボン」攻略法

いくつかは前のほうが良かったかなと思うものもあるけど好きだけどなあ。わし。 たとえばシートを範囲選択して右クリックしてもメニューにグラフウィザードがないのは ちょっと不満。よく間違ってうきーとなる(笑)

■_ SLR

SLR って簡単だけど使いどころもそれほどではないという印象があるんだけど そうでもないんだろうか。


What use is an incremental SLR parser generator? - Stack Overflow

Hi!

I once implemented an SLR parser generator that generates incremental parsers. The 
parser can parse a piece of text from beginning to end, but when you delete or insert 
text it does the minimal amount of work and minimal amount of changes in the token 
stream and syntax tree, instead of just reparsing everything from the beginning. The 
problem is I havn't been able to find any use of this? The parser does slightly more 
work than a normal parser. Is there any use of such a thing? PS. If you want to know 
how, google 'basics of compiler design diku', it's a free book, then all I had to do 
was to modify the algorithm a little bit so it stores the state of the parser 
everywhere, which is the extra work I mentioned above.

Syntax-checking in editors? 

The obvious answer is support for a structured editor, in which what the editor holds 
is the AST rather then the text. This allows the editor to suggest how to continue 
editing when only a partial input is provided (e.g., after "while" keyword, 
the editor knows that "(" is necessary and can suggest it; it can put in a 
full "if" statement after just the keyword is provided, it can complain that 
entered syntax is wrong as you type, etc.)

There have been lots of such editors built, most of them not successful; people seem 
to love/hate editors that do this.

THe most advanced current project I know that does this is the Harmonia project at 
Berkeley. They use the big-brother version of your incremental parser: an incremental 
GLR parser.

■_

2010年11月08日

■_

・センゴク外伝桶狭間戦記
あと一回ありますが実質今回が最終回みたいな感じでしょう。 細かいところをつついたらきりがないけど、良かったですね。うん。

・桁あわせ
Island Life - それLispでも(ry とか、メールで BASIC の print using などでできるよ! という指摘を受けました。 ほかにもまだあるかも知れませんね。

■_ ruby-core

ここんところ読み飛ばしたり読まずに既読にしちゃったりすることが多いのですが、 気になるものが目に付いたのでスレッドを追いかけてみました。 blade がまだ復活してないのでリンクはなしで。

[ruby-core:33019] [Ruby 1.9-Feature#4016][Open] Consider adding Age Unicode property

Feature #4016: Consider adding Age Unicode property
http://redmine.ruby-lang.org/issues/show/4016

Author: Ammar Ali
Status: Open, Priority: Normal
Category: M17N

Please consider adding the Age Unicode property to Oniguruma. This property is useful 
when it is necessary to determine availability of code points in a given text against 
a given Unicode version. Latest info: http://unicode.org/Public/UNIDATA/DerivedAge.txt

mini:bin ammar$ ./ruby -v
ruby 1.9.3dev (2010-11-02 trunk 29669) [i386-darwin9.8.0]
mini:bin ammar$ ./ruby -e 'p /\p{age=3.0}/'
-e:1: invalid character property name {age=3.0}: /\p{age=5.2}/
mini:bin ammar$ ./ruby -e 'p /\p{Age=3.0}/'
-e:1: invalid character property name {Age=3.0}: /\p{Age=5.2}/

Thanks.

[ruby-core:33020] [Ruby 1.9-Feature#4016] Consider adding Age Unicode property

Issue #4016 has been updated by Ammar Ali.


Sorry for the incorrect output, copy paste error on my part. Output should have been:

mini:bin ammar$ ./ruby -v
ruby 1.9.3dev (2010-11-02 trunk 29669) [i386-darwin9.8.0]
mini:bin ammar$ ./ruby -e 'p /\p{age=5.2}/'
-e:1: invalid character property name {age=5.2}: /\p{age=5.2}/
mini:bin ammar$ ./ruby -e 'p /\p{Age=5.2}/'
-e:1: invalid character property name {Age=5.2}: /\p{Age=5.2}/

But I think you get the idea.

Thanks

http://redmine.ruby-lang.org/issues/show/4016

[ruby-core:33049] Re: [Ruby 1.9-Feature#4016][Open] Consider adding Age Unicode property


2010/11/3 Ammar Ali <redmine ruby-lang.org>:
(引用部略)

I agree with your idea and plan to implement it.
If you have a patch, I'll merge it.


[ruby-core:33063] Re: [Ruby 1.9-Feature#4016][Open] Consider adding Age Unicode property

Great, thanks!

I think this is one more step towards making Ruby versions and Unicode versions more 
independent. Currently, it's impossible to use a new Unicode version with an older 
version of Ruby.

Regards,   Martin.

[ruby-core:33078] [Ruby 1.9-Feature#4016] Consider adding Age Unicode property

Issue #4016 has been updated by Ammar Ali.

File unicode-age.patch added

Run Paint Run Run eat me by a few minutes :)

This patch does not modify enc/unicode.c, not does it include name2ctype.h (just 
delete it), but does include name2ctype.kwd to simplify evaluation. Some basic tests 
included.

The syntax used in this patch is \p{age=5.0}.

[ruby-core:33097] [Ruby 1.9-Feature#4016] Consider adding Age Unicode property
Issue #4016 has been updated by Yui NARUSE.


Run Paint Run Run wrote:
> I've started this. What forms of property name do we want to support?
>
> * \p{age=5.2} / \p{age=6} This is the style suggested by Unicode,
>   but we don't support \p{name=value} for any other properties.

This is suitable.
I want to support this style.

> * \p{age 5.2} / \p{age 6} This is what I've implemented.
> * \p{5.2} / \p{6} This is consistent with our current convention.
They are not acceptable.

> I've implemented this by assigning to each age in DerivedAge.txt the
> codepoints of that age or younger. However, consider \p{age 4.2}.
> 4.2 is an invalid age, so we currently raise a SyntaxError,
> but we could treat this as equivalent to \p{age 4.1}.
> Which behaviour is preferred?

For exmaple invalid property, current ruby raises SyntaxError like following:
So SyntaxError is preferred.

 % ./ruby -e 'p /\p{XXX}/'
 -e:1: invalid character property name {XXX}: /\p{XXX}/

Ammar Ali wrote:
> Even though this style is consistent with the current convention,
> it lacks enough information about the purpose and could be confusing.
> The token 'age' should be included in the property, IMHO.

Agree.

> The syntax used in the patch I submitted is \p{age=5.0}.
(略)

Mentioned above, supporting key=value style is better,
but this is acceptable.

> and it might introduce a problem for older versions of gperf,
> but I'm not sure about the latter.

This is not a problem because a person who require gperf is only people
who hacks enc/unicode/name2ctype.h.

>> DerivedAge.txt states:
(略)
> My patch implements this requirement.

I'm wandering about this.
Perl supports Age property but it takes a strict interpretation.
http://perldoc.perl.org/perlunicode.html
http://perldoc.perl.org/perluniprops.html

So current implementation is *experimental* and may change in future.
----------------------------------------
http://redmine.ruby-lang.org/issues/show/4016

[ruby-core:33098] [Ruby 1.9-Feature#4016][Closed] Consider adding Age Unicode property

Issue #4016 has been updated by Yui NARUSE.

Status changed from Open to Closed
% Done changed from 0 to 100

This issue was solved with changeset r29717.
Ammar, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.

添付されていたパッチは100KiB 近かったんですが、中身は見てません。 どんなんだろう。 しかしこんなのあったのねー>ゆにこーど

■_ TinyBASIC

いろいろぐぐってたら、このスレが引っかかりまして。 2001年12月に立てられてまだ現在進行中のスレだったとは(笑)


OSと言えばコレでしょ!CP/Mスレ 

1 8bitナナシサン [] 01/12/17 21:55 ID: Be:

    「世界初の個人で買えるOS」であるCP/Mについて語るスレです。 

422 ナイコンさん [] 2007/12/07(金) 14:38:10 ID: Be:
    これは未出だよね?

    古典電脳物語―8085,Z80,CP/M,タイニーBASIC

    http://books.yahoo.co.jp/book_detail/31737960
    http://www.rutles.net/~cpu/

    8085,Z80ボードを作って、そこにCP/M2.2,東大阪版TinyBASICをROM化し、
    RS232C経由で動かそうと言う試み。実用性はないが、なんだか楽しそう。 

423 ナイコンさん [sage] 2007/12/07(金) 20:45:48 ID: Be:
    >>422
    TinyBASICは内部のテーブルの中で最上位BITを判断に使ってる部分があって
    メモリ空間の前半32KBに置かなけりゃならないという制限がある。
    AKI-80でROM化するならいいけど、PC-8001で動かした時は改造が必要だった。

424 422 [] 2007/12/07(金) 21:42:13 ID: Be:
    >>423
    コメントありがとう。
    この本を見ると、「TinyBASICは内部のテーブルの中で最上位BITを判断に使ってる部分」についての記述は何も出てない。
    「東大阪版TinyBASIC」と書いてしまったが、正確に言うと、
    徳丸浩二氏のMac OS用のCP/Mエミュレータにサンプルとして付属するTB80.ASMからの移植版で、
    TB80.ASMは、純粋なパロアルト版のタイニーBASICではなく、それを書き直した東大版に近い、とあるから、
    「TinyBASICは内部のテーブルの中で最上位BITを判断に使ってる部分」は既に改良されていたのかもしれない。 

425 ナイコンさん [sage] 2007/12/08(土) 02:15:35 ID: Be:
    ×東大阪版
    ○東大版 

426 422 [] 2007/12/08(土) 10:24:47 ID: Be:
    ごめん。間違えた。 

440 ナイコンさん [] 2008/11/05(水) 14:57:26 ID: Be:
    ライフボートのαランゲージシリーズ使ってた人いる?
    X1やMZで低価格帯で出てた 

441 ナイコンさん [sage] 2008/11/07(金) 18:14:04 ID: Be:
    Cなら持ってる 

443 ナイコンさん [sage] 2008/11/10(月) 00:31:42 ID: Be:
    α-Pascal買った。
    1ドライブ+GRAMディスクしか持ってなかったんでコンパイルの遅いのなんの。 

444 ナイコンさん [sage] 2008/11/10(月) 00:34:26 ID: Be:
    で、そのパッケージをあけたら、小難しい契約書めいた事書いてあって親と相談。
      私:「何かこのはがきに住所書いて送れって書いてあるけど、どうしよう?」
      両親:「怪しいから送っちゃだめよ」



    ええ、単なるユーザー登録でしたともw 

445 ナイコンさん [sage] 2008/11/11(火) 14:43:23 ID: Be:
    α-Pascalは、由緒正しいPコード系の中間言語コンパイラなモンで
    出てきた実行コードも遅いんだよな…実数演算もBCDで遅いし。

    まアセンブラ関数とかも使えるし、代償としてオーバーレイとかも使えるんだけど。 

446 ナイコンさん [sage] 2008/11/12(水) 21:55:02 ID: Be:
    OH!Xで結構話題でてたけどなα
    多機種のがそのまま使えたとか 

447 ナイコンさん [sage] 2008/11/14(金) 20:18:55 ID: Be:
    使えるけど機種依存ライブラリがねぇ


    X1のCP/Mで遊んでたローグをMZ-2000で実行させるローグも不思議な気分。
    エミュならMZ互換ROMとMZ用CP/Mあるしね。 

αシリーズって、MS-DOS用のもあったんじゃなかったっけか。んで、 そっちのほうだけ Ada があったような記憶がかすかにあるんだけどどうだったかなあ。

422 が紹介しているのはこれか Amazon.co.jp: 古典電脳物語―8085,Z80,CP/M,タイニーBASIC…: 鈴木 哲哉: 本 まだ問題なく買えるみたいだから次にジュンク堂とか書泉にいったときに探してみよう。

■_

■_

2010年11月07日

■_

あー、毒吐きてー。 ぼのぼのに出てくるアライグマのおやじのように。

・読んでる
トレードオフ―上質をとるか、手軽をとるか
タイトルがすべてを物語ってるような気もするけど、まあそういうことです。 Amazonさんでの書評を見ると低評価のものもありますがそれなりに読めるものじゃないかと。 後付の知恵であってもこれからに応用できるか判断したり実際に使うのは読み手の選択ですし。

■_

空白以外のキャラクターで桁あわせさせる指定があるのってCOBOLだっけ?


Perlについての質問箱 45箱目
131 デフォルトの名無しさん [sage] 2010/11/07(日) 10:37:16 ID: Be:
    数字を、
    **100
    *1000
    みたいに、桁数固定でゼロサプレスするけど代わりに*を埋める、みたいなことを
    printfでできますか 

132 デフォルトの名無しさん [sage] 2010/11/07(日) 10:40:28 ID: Be:
    直感だけどw


    %*5d


    は? 

133 デフォルトの名無しさん [sage] 2010/11/07(日) 10:54:32 ID: Be:
    駄目でした(やっぱり) 

135 デフォルトの名無しさん [sage] 2010/11/07(日) 12:17:08 ID: Be:
    $str = '*****' . $num;
    printf substr($str, length($str) - 5, 5);

    はいはい邪道邪道 

136 デフォルトの名無しさん [sage] 2010/11/07(日) 12:42:27 ID: Be:
    $temp = sprintf("%5d\n", $num);
    $temp =~ s/ /*/g;
    print $temp;

    どうしても途中に一回変数を挟むな 

137 デフォルトの名無しさん [sage] 2010/11/07(日) 13:05:58 ID: Be:
    こんなんはダメ?

    print '*' x (5 - length $num) , $num; 

138 デフォルトの名無しさん [sage] 2010/11/07(日) 13:27:39 ID: Be:
    >>135
    自分もそれ思いついた
    けど、>>137 が一番見やすいのかな?

    あっ、質問主じゃないですが ^-^; 

139 デフォルトの名無しさん [sage] 2010/11/07(日) 13:39:36 ID: Be:
    題意の通りにprintfを使うと

    printf("%s%d", '*'x(5 - length $num), $num);

    こんな感じか 

■_ Emacs は

ピンポイントで抜き出し

プログラミング言語 Scala 4冊目 [chaika]
752 デフォルトの名無しさん [sage] 2010/11/06(土) 04:13:46 ID: Be:
    IDEAの補完がもたつくの俺だけ?
    補完の遅延とか同じ設定でJavaだとさくさく。なんでぞ 

757 デフォルトの名無しさん [sage] 2010/11/06(土) 23:11:15 ID: Be:
    Eclipseは普通に編集できるようにするだけで苦労するレベルだった
    Emacsかなぁ 

758 デフォルトの名無しさん [sage] 2010/11/06(土) 23:20:35 ID: Be:
    Eclipseで普通に編集するだけでも、IDEと格闘するレベルの努力が必要だったのは、
    Scala 2.7系時代の話。

    2.8系になってからは、……知らん。 

759 デフォルトの名無しさん [sage] 2010/11/07(日) 00:13:27 ID: Be:
    Emacsはそれ自体使い始めるまでが苦労するからなぁ
    面倒くさくないのならIDEAかなぁ 

763 デフォルトの名無しさん [sage] 2010/11/07(日) 06:17:30 ID: Be:
    Emacsはヌーの絵が嫌い 

764 デフォルトの名無しさん [sage] 2010/11/07(日) 09:20:49 ID: Be:
    あれがアルパカだったら・・・いや、なんでもない 

アイコンの図案がダメというのは秀丸を連想したりしなかったり。

■_ 言語 I

ま、丸投げなんですが。


【超初心者】プログラミング質問スレ【基礎】pt.2 
777 デフォルトの名無しさん [] 2010/11/06(土) 22:21:41 ID: Be:
    if文を使ってスクロールバーを動かすとセルの色が黒→青→水色と変化していく
    プログラムはどうやって作るのでしょうか・・・
    Interior.Color = RGB(0, 0, 0)ぐらいしかわかりません。 

778 デフォルトの名無しさん [sage] 2010/11/06(土) 22:28:41 ID: Be:
    言語も環境もなしでどうしろと、エスパー能力がいる。
    文も意味不 

779 デフォルトの名無しさん [] 2010/11/06(土) 22:38:00 ID: Be:
    >>778
    言語Ⅰです(?)学校の課題なんです(;;) 

780 デフォルトの名無しさん [sage] 2010/11/06(土) 22:39:21 ID: Be:
    宿題は宿題スレへ 

781 デフォルトの名無しさん [sage] 2010/11/06(土) 22:43:38 ID: Be:
    要は
    スクロールバーの半分まで
    B(青)成分を0→255へ
    半分以降は
    G(緑)成分を0→255へ
    ってことでしょ
    それ以上は仕様が分からないから何も言えない 

782 デフォルトの名無しさん [sage] 2010/11/06(土) 22:44:20 ID: Be:
    言語ⅠってJavaでSwingかよ、古、Swingはパス。 

783 デフォルトの名無しさん [sage] 2010/11/06(土) 22:52:19 ID: Be:
    言語Ⅰってのは、PL/I ってことじゃないのか? 

784 デフォルトの名無しさん [] 2010/11/06(土) 22:53:21 ID: Be:
    >>780
    宿題スレあったんですね!すみません!
    >>781
    仕様って何を言えばいいですか・・・?
    >>782
    コンピュータ言語Ⅰって書いてます、古いんですか? 

785 デフォルトの名無しさん [sage] 2010/11/07(日) 00:06:11 ID: Be:
    コンピュータ言語Ⅰが古いんじゃなくてSwingが古いの。もう忘れたよ。
    宿題スレ
     ↓
    http://hibari.2ch.net/test/read.cgi/tech/1267796762/l50

    Swingスレ
     ↓
    http://hibari.2ch.net/test/read.cgi/tech/1261232019/l50 

■_

■_

Zedがまた誰ぞに食って掛かっているらしく。 Zed Shaw, LPTHW, & Learn You An Ruby : programming

■_

ちまちま訳しているのがいくつかあるんですが、どれも中途半端。

2010年11月06日

■_

Smalltalkをかじる - 西尾泰和のはてなダイアリー Lisp や Scheme についての疑問を書くと即座に shiro さんのコメントがつくという伝説がありますが、 Smalltalk の話を書くと sumim さんのコメントがつく仮説。

ショボーンクッション買い損ねてしょぼーん。 いやまあ昼過ぎまで出かけなかった自分が悪いんですけどね。

明倫館書店に 岩波書店のシリーズ 情報科学 の全巻揃が置いてあったりするんですが(にまんえん)、 金額もそうだけど(って一巻あたりにすればそれほどでも)、 24巻もあると置き場所がなあ。 こっちのシリーズ ソフトウェア科学 は全巻ではないけど何冊か持ってる。

■_ ぐさっ


推薦図書/必読書のためのスレッド 59
243 デフォルトの名無しさん [sage] 2010/11/03(水) 20:16:13 ID: Be:
    ゲームプログラマになる前に覚えておきたい技術って入門書読んだぐらいでもおk? 

297 デフォルトの名無しさん [sage] 2010/11/05(金) 16:36:15 ID: Be:
    >>243
    この本第一章の荷物くんが出来て当たり前の雰囲気で焦る。
    読めるけど書けないんだけど大丈夫なのか

298 デフォルトの名無しさん [sage] 2010/11/05(金) 16:46:57 ID: Be:
    書けないと買っても積むだけだと思われ
    CUIでもいいからオセロくらい作れるようになってからかな 

299 デフォルトの名無しさん [sage] 2010/11/05(金) 16:47:56 ID: Be:
    書けないんじゃなくて書かないんだろ。
    書けば誰でも書けるんだよ。
    書けるのに書こうと思わないんだから
    これはもう頭の良し悪しでなく適正がないとしか言えない。 

300 デフォルトの名無しさん [sage] 2010/11/05(金) 16:49:08 ID: Be:
    適性があるばっかりにろくな人生を歩めないことになったりするしね 

301 デフォルトの名無しさん [sage] 2010/11/05(金) 17:05:43 ID: Be:
    確かに書こうと思えば時間が掛かるけど出来るのかもしれないです。
    ただどう実装して良いのか発想が出てこない。enumで状態表すとかなんとかって発想とか。 

302 デフォルトの名無しさん [sage] 2010/11/05(金) 17:09:26 ID: Be:
    バカな作り方をしてからお手本見た方が
    凄い発想だって気づきやすいからそうさせてんだよ。 

303 デフォルトの名無しさん [sage] 2010/11/05(金) 17:09:54 ID: Be:
    >>301
    いい感じだよ
    あとは二次元配列を使ってあれをこうしてそこをああして…ほら出来た 

304 デフォルトの名無しさん [sage] 2010/11/05(金) 17:16:52 ID: Be:
    発想が出ないと書けないとすぐ諦めていたのでもうちょっと粘って考えるようにすれば下手くそなりに書けるのかもしれません。
    皆さんアドバイスありがとうございました。 

305 デフォルトの名無しさん [sage] 2010/11/05(金) 17:19:42 ID: Be:
    発想って言うのは色々なソースを見て覚えるものだよ。
    初めから凄い発想を出せるような人に本なんていらないのだからね 

307 デフォルトの名無しさん [sage] 2010/11/05(金) 18:50:40 ID: Be:
    発想の無さは中学で気づいた 

308 デフォルトの名無しさん [sage] 2010/11/05(金) 22:53:37 ID: Be:
    発想なんて全然難しいことじゃないんだけど
    今の若い人はなんでも最初に虎の巻を読むのが当たり前になってて
    自分で考えないからね。。

    ただ自我を通せばいい。それだけ。わがままになるってことだ。
    虎の巻に面倒な方法しか書いてないときに「こうやるしかないのか」と我慢してしまう人はだめ。
    「なんでこんなめんどくさいことやらなあかんねん!」と自己流を突き詰めるだけで,
    それを他人が見れば「すごい発想」になる。
    要は自分のやりたいようにやってみるということだ。 

309 デフォルトの名無しさん [sage] 2010/11/05(金) 22:59:52 ID: Be:
    今は昔とは違うからなぁー

310 デフォルトの名無しさん [sage] 2010/11/05(金) 23:01:16 ID: Be:
    次のページに答えがあるからな。
    考えるのも阿呆らしいんだろ 

311 デフォルトの名無しさん [sage] 2010/11/05(金) 23:25:07 ID: Be:
    最適な書き方なんて解らんから
    思いついたままに書くのさ。
    とりあえず動けば頭の中に構造が入る。

    んでもって別の実装方法考えて、前の
    実装との差異を考える。

    んでもって、コンピュータの内部動作や
    言語の内部動作をつめていくと、また
    違った視点が見えてくる。


    そんなもんだと思ってたが、読んだだけで
    自分のものにできる人は優秀でうらやましいわ。 

312 デフォルトの名無しさん [sage] 2010/11/05(金) 23:30:47 ID: Be:
    そういう時代じゃないからなぁー 

313 デフォルトの名無しさん [sage] 2010/11/05(金) 23:39:10 ID: Be:
    表層ばかりなぞる輩は、まぁ増えるんだろうけど
    下層担当輩がどういう扱いになってくるのやら 

314 デフォルトの名無しさん [sage] 2010/11/05(金) 23:40:22 ID: Be:
    時代じゃないのよ努力はアッハー 

315 デフォルトの名無しさん [sage] 2010/11/05(金) 23:43:47 ID: Be:
    ろくに手も動かさないから若い連中はダメだ
    うちの連中も仕組みを説明してやると途中で話を遮って答えを聞いてくる
    がむしゃらにプログラミングした経験がなければ
    いくら答えの載ってる本を読んでも無駄なんだけどな 

316 デフォルトの名無しさん [sage] 2010/11/05(金) 23:47:53 ID: Be:
    ちゃんと教育しろよ 

317 デフォルトの名無しさん [sage] 2010/11/05(金) 23:49:24 ID: Be:
    今プログラミングの勉強してる自分にはためになる話だな~
    参考書読む時間の方が圧倒的に多いわ 

319 デフォルトの名無しさん [sage] 2010/11/06(土) 00:34:48 ID: Be:
    まあ実装なんて下請け丸投げだからな。大きい会社だと研修でしかプログラミングしかことありませんみたいなやつもいるし。 

320 デフォルトの名無しさん [sage] 2010/11/06(土) 00:39:05 ID: Be:
    就職が決まって 髪を切って来る時代もあったし
    そうじゃない時代もあるんだろうなって思いました 

322 デフォルトの名無しさん [sage] 2010/11/06(土) 01:37:44 ID: Be:
    まぁ、書くだけならある程度できるが
    構造化できなかったりな。

    誰もがマイケルジャクソンのように踊れるわけじゃーねー 

323 デフォルトの名無しさん [sage] 2010/11/06(土) 01:42:57 ID: Be:
    今日もお務めご苦労様です! 

324 デフォルトの名無しさん [sage] 2010/11/06(土) 01:59:08 ID: Be:
    >>322
    今でもジャクソン法を信奉してる人は多いんじゃないの。 

325 デフォルトの名無しさん [sage] 2010/11/06(土) 03:39:07 ID: Be:
    自信無いから本たくさん買って積んでるんだろうなー
    俺もここでギャーギャー騒いでた詳説C++なぜか昔買ってて読んでねーし 

326 デフォルトの名無しさん [] 2010/11/06(土) 07:05:02 ID: Be:
    >>324
    マイケルジャクソンはCOBOLのひとだから、その世界ではどうなのかな。これか
    http://www.amazon.co.jp/dp/B000J6MYUY
    こちらは読んでいない
    http://www.amazon.co.jp/dp/4798108782

書けないんじゃなくて書かないんだろ。 、耳いてー ○| ̄|_

■_ i と j


2次元配列でのiとjについて。 | OKWave

2次元配列でのiとjについて。
2次元配列をつかってコードをかくとき、
x軸をj y軸をi 
または
x軸をi y軸をj
どちらでコードを書いていますか?
またこっちで書くとこういうときわかりやすいみたいなのがあれば教えてください。
しょうもない質問ですがどうかよろしくお願いします。

ANo.3

ループにi,jを使うというのは、昔のFortranでi,jあたりの変数が整数型で速かった、というな
ごりでありまして。

現在はどんな名前を使おうが違いはないので、変数名から役割りがわかるような名前を使うのが
「わかりやすい」です。

例にあるようなX-Y座標と関連する二次元配列なら、x,y 、x,yを別に使ってたら、dx,dyとか
lx,lyとかx0,y0とか。

ANo.1

iとjではなくixとiyを使う。

思い切りえすぱーすると、

    for 
        for
           array[x][y]

という二重ループで、array[i][j] とするか array[j][i] とするかというお悩みと見た。

これは FORTRAN などの一部の言語を除けば Row-major order - Wikipedia, the free encyclopedia なので、右側の添え字を内側のループで変化させるようにすると。

■_ Tiny BASIC

ちっちゃいのが好きなんです(嘘


マイクロコンピュータプログラミング入門 -- Tiny BASIC インタプリタ --
今から20年前に出版された本である。当時、ちいさな言語が流行っていた というか、ちいさ
な言語しかマイクロコンピュータ上では動かせなかったので ある。

その中でも、Tiny BASIC は人気が高かった。日本国内でも、いくつかの Tiny BASIC が作成さ
れていたと思ったが、はっきりとした記憶がない。

当時、マイクロコンピュータに限らず、コンピュータ全般にわたって、近代 科学社が優れた本
を出していた。その中の薄い方のシリーズの中の1冊である。

東京版 Tiny BASIC インタープリタについての作り方、内部のルーチンの仕 様などが詳しく書
かれている。2バイト整数型の簡単なBASICで、出力はPRINT 文、入力はINPUT文くらいしかない。
変数名や配列名も英字1文字という制限 つきである。当時は、BASICが動くというだけで注目を
集めた時代である。

このTiny BASICは、たった4種類の命令しかない中間言語によって動いてい るのであった。た
った4種類しかない命令で、どうしてちゃんと動くかという と、その中の1つに、機械語プロ
グラムを呼び出す、というのが用意されてい て、困ったときには機械語だのみというのである。
でも、これで、見通しは機 械語の場合と比べて随分良い。

4種類の命令:
MCALL   a	a番地から始まる機械語のプログラムを直接呼び出して実行させる。
ICALL   a	a番地から始まる解釈ルーチンを呼び出して、解釈させる。
JUMP   a	この中間言語ルーチンの中でa番地へジャンプする。
TEST   a,s	与えられた文字列がsに等しいかどうかを調べ、等しくなければ、 a番地へジャンプする。

これだけの命令で、この中間言語の実装は、基本的に2バイト単位である。 TEST命令のときだ
け、2バイトの後ろに文字列が繋がる。2バイト内の構成は、 上位2ビットで命令を識別し、
残りの14ビットでアドレスを示す。

こんな命令体系で、BASICインタープリタの作成を丁寧に書いた本で、私は 何度も何度も読んで、
本の一部がバラバラになってしまった。コンピュータ関 係の本で、この本より熱心に読んだ本
はない筈だ。

というのもあって、いっぺん読んでみたいなあということで以前に Tiny BASICのソースが どーのとか書いてたのですね。ただこの本 Amazon.co.jp: マイクロコンピュータプログラミング入門―Tiny BASIC インタプリタ (1978年) (コンピュータサイエンス大学講座): 石田 晴久: 本 中古品1点¥ 50,000より とかゆー値段がついております ○| ̄|_

幸いなことに近くの図書館で所蔵していて、借りることができたので数十ページコピーしたり(^^;

東大版ではありませんが、 その元になったパロアルト版のソースがネット上にあるので読んでみることにしました。

■_ で

マ板にずいぶんと熱い(発言が多い)スレが立っておりまして。


例外を正しく使えないプログラマ多いね。 [chaika]
1 仕様書無しさん [sage] 2010/10/31(日) 14:39:56 ID: Be:
    try {
      ・
      ・
      ・
     return 0;
    } catch (Exception e) {
     e.printStackTrace();
     return -1;
    }


    これみて理解できない奴は馬鹿。 

2 仕様書無しさん [sage] 2010/10/31(日) 15:07:31 ID: Be:
    catchでretun… 

3 仕様書無しさん [sage] 2010/10/31(日) 15:08:18 ID: Be:
    あまりにショックすぎて1文字抜けてしまった 

4 仕様書無しさん [sage] 2010/10/31(日) 15:17:16 ID: Be:
    きっとあれだ、標準ライブラリーが返す例外を、リターン情報に変換する、
    例外処理を提案しているんだよ。
     結論は、例外はするな!リターンコードで返せでつねw 

5 仕様書無しさん [sage] 2010/10/31(日) 15:28:47 ID: Be:
    >>1が○○なことは理解できた。 

6 仕様書無しさん [sage] 2010/10/31(日) 15:33:04 ID: Be:
    >>1が例外 

■_ 配列中の値が最大の要素を見つけ出す

プログラミングの課題で出そうな話ですが。


find largest number in array : perl

I spent three evenings trying to rap my head around this problem (I've never been able 
to grasp programming), to find the largest number in an array without using sort. 
Google showed a couple solutions but they used sort. Here's what I came up with and 
I'm pretty proud of it. Did I do good or am I still not grasping the concept?

!/usr/bin/perl

@array(4,9,1,3,2);

if(($array[0] > $array[1]) && ($array[0] > $array[2]) && ($array[0] > $array[3]) && ($array[0] > $array[4])){
print "$array[0] is the largest number in the array\n";
        }elsif(($array[1] > $array[0]) && ($array[1] > $array[2]) && ($array[1] > $array[3]) && ($array[1] > $array[4])){

print "$array[1] is the largest number in the array\n";
        }elsif(($array[2] > $array[0]) && ($array[2] > $array[1]) && ($array[2] > $array[3]) && ($array[2] > $array[4])){

print "$array[2] is the largest number in the array\n";
        }elsif(($array[3] > $array[0]) && ($array[3] > $array[1]) && ($array[3] > $array[2]) && ($array[3] > $array[4])){

print "$array[3] is the largest number in the array\n";
        }elsif(($array[4] > $array[0]) && ($array[4] > $array[1]) && ($array[4] > $array[2]) && ($array[4] > $array[3])){

print "$array[4] is the largest number in the array\n";

}

これはまあよくがんばったねとしか言いようがありませんが、それはともかく。


Just use the max() function from List::Util, which is a core module.


Exactly what I came here to say. No need to reinvent the wheel -- make your code 
shorter, easier to read, and more maintainable.

Sample code:

use strict;
use warnings; 
use List::Util qw(max);

my @array = (4,9,1,3,2);
my $max = max(@array);
print "Maximum is $max\n";


If beginners never implemented something that's already in a module, they'd never 
learn anything. I would suggest that using 'max' from List::Util is a perfectly fine 
shortcut for people who know how to find the maximum value in an array but couldn't be 
bothered (or who want more readable code).


    If beginners never implemented something that's already in a module, they'd never 
    learn anything.

Of course, that "anything" far too often means "Wow, someone can use my 
formmail.pl to send spam? You don't have to use a web browser to submit form data? 
Really?"


Your solution defeats the purpose of using an array - you might as well be using 5 
named variables, because you're referencing each element individually. What you should 
do (if you want to write the algorithm yourself) is to loop through each element, so 
it works for any array:

# Note that this relies on the array having at least one number larger than -1 - if 
# you need to handle negative numbers as well, it'd be a little more complicated.
my $biggest = -1;
for my $element (@array) {
    $biggest = $element if $element > $biggest;
}
print "$biggest is the largest number in the array\n";

If you don't care about the way it works and just want to use it, however, you should 
use the max method from List::Util.

Just initialize $biggest to $array[0]. Of course, this assumes that you have at least 
one item in the array. You'd probably check that @array isn't empty before entering 
this section of code anyway.


Because it's Perl, it doesn't necessarily assume anything. If the array is empty, then 
$biggest is simply undef. It remains so because the loop never runs. $biggest being 
undef at the end is preferable to -1 since it's an obvious indicator that the maximum 
value in the array is undefined (doesn't exist).


You're absolutely right, of course. In either case, the caller (copy/paster) of the 
function needs to be aware of the edge condition.


cool, I see I'll have to think about it some more.


It's not really a programming problem. It's a problem problem. If you had a stack of 
receipts, for instance, and you wanted to find the one with the largest total in it, 
how would you do it?

I expect most people would go through the receipts one by one and keep track of what 
the largest one was. That is (almost) the solution amdpox gave you. Had he set 
$biggest to $array[0] first, it would be effectively the same as how most people would 
sove this in the real world (and work for negative numbers, but it is assumed that the 
array is non-empty).

What your solution does is it takes the first receipt and compares it to all the rest. 
If it found one which is larger, it then takes the second receipt and compares it to 
all the rest. If some were larger, the third compared to all the rest, and so on.

If you were doing receipts that way, it would a lot longer to complete.

So just keep in mind how you'd solve things in the real world before trying to figure 
out how to write it in a programming language.

Incidentally, sorting the array is not a very good way to do this problem. Going 
through one by one is the most sensible way to do this task on an unsorted list. 
(Sorting is more computationally complex than finding the max of an unsorted list.) If 
the list is already sorted, the problem is reduced to the real world equivalent to 
finding an entry in a dictionary, but sorting isn't free. If sorted though, you don't 
go one by one, but instead you use the fact that they are sorted to more efficiently 
find your entry.

Rule of thumb; if you find yourself cutting and pasting line after line of code that 
is just a permutation of the line above it, you're doing it wrong.

Computers are really really good at repetition. Make the code do the work for you.
Why not just do something like this: (psuedo-code)

ARR_LEN = n
arr = [0..n]
biggest = 0
for(i = 0; i < n; i++){
    if (arr[i] > biggest)
        biggest = arr[i]
}
print("The biggest number is %i", biggest)

Of course, you could always use the max function like perlgeek said.

my line noise solution:

perl -le '@array = (4,9,1,3,2); $m = 0; grep {$m = ($m < $_)?$_:$m} @array; print $m'

9
I don't like that your grep has a side effect... I don't know why that bothers me more 
than anything else. Why grep not map? Why not for?

Also, erroneously returns 0 for negative or empty arrays.

Here's some different line noise:

use strict;sub max{my $max;$max=defined $max?$max>$_?$max:$_:$_ for(@_);$max}print max 4,9,1,3,2

>> [14, 11, 190, 1500, 7].max
=> 1500

最後のは Ruby じゃなかろか。

■_

2010年11月05日

■_

アレとかアレとアレとか。

■_ 七週間で七言語

出たらしく。


The Pragmatic Bookshelf | Seven Languages in print; PragPub November Issue

Seven Languages in print; PragPub November Issue

November 03, 2010

Want to become a better programmer? Learning a new programming language will show you 
new ways of thinking, and new approaches to problem solving that will help you be a 
better programmer in any language. And what if you could learn the important lessons 
from seven different languages? You'd be unstoppable.

Seven Languages in Seven Weeks is now in print and shipping from 
pragprog.com/titles/btlang, and the November issue of PragPub magazine is now 
available free to read and share from pragprog.com/magazines. See below for details.

Don't forget that PragProWriMo is underway. Get started on your own writing project!

    * Write at least 2 pages every day in November
    * Post your progress to forums.pragprog.com/forums/190
    * Follow us for advice and updates on Twitter @pragprowrimo

Tell your friends! Tweet this

Seven Languages in Seven Weeks

Ruby, Io, Prolog, Scala, Erlang, Clojure, Haskell. With Seven Languages in Seven Weeks, 
by Bruce A. Tate, you'll go beyond the syntax—and beyond the 20-minute tutorial you'll 
find someplace online. This book has an audacious goal: to present a meaningful 
exploration of seven languages within a single book. Seven Languages hits what's 
essential and unique about each language and helps teach you how to grok new languages.

For each language, you'll solve a nontrivial problem using techniques that show off 
that language's most important features. You'll discover the strengths and weaknesses 
of each language, while dissecting the process of learning languages quickly—for 
example, finding the typing and programming models, decision structures, and how you 
interact with them.


(略)

The Pragmatic Bookshelf™ is an imprint of The Pragmatic Programmers, LLC.
Copyright © 1999–2010 The Pragmatic Programmers, LLC. All Rights Reserved.

日本語訳もまずされるだろうけど、原著買っちゃうだろうなあ。 ぽちっとな。

■_

Lion's 本どこいった~

どこかで誰かが書いていたと思うのだけど、 Lion's 本は原著のほうが味のある装丁でいいですよね。 横長だし、書体もいかにも昔のドットインパクトプリンター然としたものだし。 でもそれだと売れないんだろうなあ>日本語版


Lions' Commentary on UNIX 読書会メモ#1 - やる気のないはてだ
(略)
    * なぜldivはアセンブリで書かれてる?
          o 当時のコンパイラが貧弱で、まともなコードが生成されないから、とか?
          o そもそも割り算って、ソースコード中で使われていないような
          o PDPの種類によっては、割り算用のハードを持っていないから、とか?
          o http://twitter.com/oraccha/status/29273622447

この、割り算云々はレジスタペアを被除数にするからじゃないかなあと思ったんだけど


m40.s
1391: /* ---------------------------       */
1392: .globl  _ldiv
1393: _ldiv:
1394:         clr     r0
1395:         mov     2(sp),r1
1396:         div     4(sp),r0
1397:         rts     pc
1398: 
1399: /* ---------------------------       */
1400: .globl  _lrem
1401: _lrem:
1402:         clr     r0
1403:         mov     2(sp),r1
1404:         div     4(sp),r0
1405:         mov     r1,r0
1406:         rts     pc
1407: 

違うかな?

r0:r1 を 4(sp) で割ってるんじゃないかと。 んで、商 → r0、剰余 → r1。 こういう振る舞いは C じゃ書けないと思いますです(インラインアセンブラーはなしね)。

■_ F#

F# をアパッチライセンスで公開とか何とか。 Microsoft Releases F# Under the Apache License : programming 日本語記事も出るかな? InfoQ: Microsoft Open Sources F#


Announcing the F# Compiler + Library Source Code Drop - Don Syme's WebLog on F# and Related Topics - Site Home - MSDN Blogs

Right in time for the first F# in Education Workshop in Boston, I'm very glad to 
announce that the long-awaited source code drop for an F# 2.0 compiler and core 
library are now available, as part of the F# PowerPack. 

This release reinforces the commitment Microsoft are making to F#, including F# in 
Visual Studio. As explained in my PDC10 lecture The Future of F#, we have a clear 
vision for F#, indeed a ground-breaking one, and are investing in it. To augment this, 
we are glad to be able to provide a compiler/library source drop, and are excited 
about the role this can play for education and tool development. 

This source code is under the Apache 2.0 license and is published as part of the F# 
PowerPack codeplex project, which is now also under the Apache 2.0 license. The F# 
PowerPack now includes libraries, tools and the compiler/library source code drops.

このソースコードは Apache 2.0 ライセンスの下にあり、F# PowerPack complex プロジェクト
の(これもまた Apache 2.0ライセンス下にあります) 一部として publish されています。
F# PowerPack は今やライブラリ、ツール、そしてコンパイラーとライブラリの
ソースコードドロップ (source code drops) を含んだものになっています。

I'd like to take a moment to explain the F# team's approach to this. Firstly, the 
source for the F# compiler in our MSI/CTP releases has been available for some time, 
in the releases themselves, so in that sense there's not much new in this release. 
Secondly, we've always made sure we have a free download binary release of F# 
available, and will continue to do that, and that should still be the main way you
“get” a release of F#. However, we've long discussed making compiler+library source 
available in a different way.  

After some discussion, we've decided to do this via a “code drop” model, where we 
make available versions of the compiler+library code logically matching each release 
of the F# language itself. In the F# team, releases of F# are matched to coincide with 
releases of Visual Studio itself: using this release cadence simplifies our 
development processes and gives clarity to language versioning. This means the code we 
are making available today is for the F# 2.0 language, released in April 2010, 
including the small changes for the MSI tools updates through November 2010.  We 
expect to make matching code drops if/when service pack(s) of Visual Studio 2010 are 
released, though sometimes it may take a while for us to get that out the door.

As this release is a code drop, it does not contain binaries. This means you still get 
F# from fsharp.net, so the place to “get” F# doesn't change with this release. 

このリリースはコードドロップとしてのもので、バイナリを含んでいません。


    * To get or learn F# 2.0, or learn why F# is important, go to fsharp.net
      F# 2.0 を入手したり学ぶとか、F#がなぜ重要なのかを知るには fsharp.net に行きましょう。

    * To use F# 2.0 in Visual Studio 2008 or Visual Studio 2010, including with the
      freely available Visual Studio 2010 Shell go to fsharp.net
      Visula sudtion 2008 や Visual Studio 2010 で F# 2.0 を使うには
      自由に入手できる Visual Studio 2010 Shell で使う場合を含め、sharp.net へ行きましょう。

    * To get the compiler+library source code drop, go to the F# PowerPack and look
      for directory compiler.
      コンパイラーおよびライブラリのコードドロップを入手するには F# PowerPack へ行き
      コンパイラーのディレクトリを探しましょう。

Enjoy!

Don, for the F# team 

    * © 2010 Microsoft Corporation.

ここででてくる drop って名詞なのね。 落とすとかいった動詞の方かと思ってしばらく悩んでしまった。

■_

■_ 256

まあその筋(どれ?)でないとぴんと来ない数字なんでしょうねえ。 VisiCalc だとどうだったんだろう? あれ。A1形式って Lotus 1-2-3 が元祖?

Excelの列番号 | OKWave

Excelの列番号にはA~IVまで AA、ABなどを含みなぜ256文字になるのでしょうか?
数の意味をレベルの低い生徒だと思って教えて下さい。

ANo.1


2の8乗、切れがよかったぐらいの意味でしょう。ちなみに2007では16,384、2の14乗
です。こちらもこのくらいあればいいんじゃないというぐらいの意味合いでしょう。


すいません。レベルが低いものでなぜ8乗か理解できません。
基礎から教えて下さい。
ご回答どうも有難うございました。

2010年11月04日

■_

木曜発売の東スポまで、イチローも指導した河村コーチがコラムを連載していたのですが、 なんというかコーチというものの難しさをうかがわせるものでした。

■_

いろいろと話題に。


Learn Python The Hard Way: free book : programming

Learn Python The Hard Way: free book (learnpythonthehardway.org)


Related post: http://sheddingbikes.com/posts/1288830708.html

+1 for Learn C the hard way!


+1 for Learn R The Hard Way


The market needs a book on R programming which needs to have NOTHING to do in 
STATISTICS but go over the concepts of

    * scientific computing practice (vectorisation etc)
    * database connection
    * object oriented computing (S3, S4)
    * functional programming construct
    * string manipulation
    * operator overloading
    * foreign language interface
    * internal design and data representation
    * library design and packing
    * deployment options and procedure
    * how the language design is based on lisp
    * performance tip and hint

etc


There is no easy way to learn C.


Learn C the hard way


that was the easy way


"Every programming language has some kind of way of doing numbers and math. Do 
not worry, programmers lie frequently about being math geniuses when they really aren'
t. If they were math geniuses, they would be doing math, not writing ads and social 
network games to steal people's money."

まあ Zed なら C でも R でも入門やら書けるだろうねえ。

■_

■_ 右とか左とか


C++0x 11 
450 デフォルトの名無しさん [] 2010/11/03(水) 08:50:13 ID: Be:
    さーって、右辺値参照を勉強するか。




    ううーーむ、わからん 

451 デフォルトの名無しさん [sage] 2010/11/03(水) 09:19:19 ID: Be:
    いつものように0xと関係ない話題になると伸びが早いな 

452 デフォルトの名無しさん [sage] 2010/11/03(水) 11:09:36 ID: Be:
    VC10使ってる人とか少ないのかな?lambdaとか右辺値参照とかかなり有益なものが入ってるのに

453 デフォルトの名無しさん [sage] 2010/11/03(水) 11:32:37 ID: Be:
    まだ仕様変わってるし、あまり触りたくない
    VC6の悪夢が・・・ 

454 デフォルトの名無しさん [sage] 2010/11/03(水) 12:57:47 ID: Be:
    右辺値参照の何が難しいのかわからん。

    void f(int &x) { puts("L"); }
    void f(int &&x) { puts("R"); }

    int main()
    {
    int a = 1;
    func(a); // こうやって呼ぶと"L"
    func(1); // こうやって呼ぶと"R"
    }

    これだけのことではないか。 

455 デフォルトの名無しさん [sage] 2010/11/03(水) 13:09:10 ID: Be:
    VCというかWindowsがない
    俺なんでこのスレ見てるんだろ 

456 デフォルトの名無しさん [sage] 2010/11/03(水) 13:11:52 ID: Be:
    こうじゃないの?

    void fanku(int &x){ std::cout << "reference" << std::endl; }
    void fanku(int &&x){ std::cout << "uhennti sannsyou" << std::endl; }

    int main(){
    int a = 1;
    fanku(a);
    fanku(int(a));
    } 

457 デフォルトの名無しさん [sage] 2010/11/03(水) 13:32:22 ID: Be:
    どっちもあってる 

458 デフォルトの名無しさん [sage] 2010/11/03(水) 13:40:44 ID: Be:
    これに
    void fanku(int)が加わればどうなるの? 

459 デフォルトの名無しさん [sage] 2010/11/03(水) 14:24:26 ID: Be:
    右辺値参照がわかりにくいのは、Standard のどこを読んだらいいのか
    いまいちはっきりしないからだと思うけど
    rvalue と rvalue reference が違うことを念頭に置いて
    以下の原文を読むとわかる…かもしれない。

    3.10-1 lvalue,xvalue,prvalue の図

    5-6 名前付き右辺値参照は lvalue になる。
       名前なしの(関数の戻り値とかの)右辺値参照は xvalue になる。
       関数への右辺値参照は、名前のあるなしにかかわらず lvalue になる。

    8.3.2-2 左辺値参照と右辺値参照は違う型だが、
        明示的に注記されない限り両者は意味論的に同じ。

    13.3.3.2-3
       (暗黙の変換S1とS2がありうるとき、S1のほうが適用される条件)
       - S1 と S2 が参照束縛で、
        S1 は rvalue (つまり xvalueかprvalue)を右辺値参照に束縛し、
        S2 は左辺値参照を束縛するとき。
       - S1 と S2 が参照束縛で、両者が同じ型を参照していて、
        S1 のほうが const/volatile の修飾が少ないとき。
        (片方が参照で、片方が値のときはあいまい)

    ついでに
    13.3.1-4 と -5 あたりで
      struct A { void hage(); void hige()&; void hoge()&&; };
    の違いがわかるはず。

460 デフォルトの名無しさん [] 2010/11/03(水) 14:33:46 ID: Be:
    いや、この程度のことならいいけど。
    ところで、int(a)は型キャストだと思うが、これも右辺値?

    constが絡んでくるとどうなの?
    参照返しがなされたときは?
    一時オブジェクトであってもそのオブジェクトを受けた関数側に
    参照引数が使ってある場合、その関数内では左辺値になるよね?

    こういうことがゴチャゴチャしていてC++は複雑なんだよ。 

461 デフォルトの名無しさん [sage] 2010/11/03(水) 14:45:58 ID: Be:
    static_cast(他)もtypenameのキャストも右辺値を返すよ。 

462 デフォルトの名無しさん [sage] 2010/11/03(水) 14:46:20 ID: Be:
    >ところで、int(a)は型キャストだと思うが、これも右辺値?
    キャストは一時オブジェクトを作るので右辺値

    >constが絡んでくるとどうなの?
    constの右辺値参照引数は意味がない(壊せない右辺値なんて…)ので考えなくていい
    const T& と (non-const)T&& でオーバーロードするのが基本

    >参照返しがなされたときは?
    戻り値の事なら戻り値の型どおり
    左辺値参照なら左辺値、右辺値参照ならxvalue

    >一時オブジェクトであってもそのオブジェクトを受けた関数側に
    >参照引数が使ってある場合、その関数内では左辺値になるよね?
    関数内ならそれも引数の型どおり
    左辺値参照なら左辺値、右辺値参照ならxvalue

    別にゴチャゴチャしてないと思うが
    というか右辺値参照の評価が左辺値だったりした昔に比べればずいぶんスッキリした 

463 デフォルトの名無しさん [] 2010/11/03(水) 15:06:42 ID: Be:
    >>462

    あんたはそう言うけどさ、一般の人間にはついていけんよ。
    右辺値、左辺値なんて言葉は昔から使ってあったと言うけど
    誤解を招くから使わない方が良いと思う。

    (1) どういう場合に無名の一時オブジェクトが生成されるのか?
    (2) 無名オブジェクトでも名前つきオブジェクトとして扱われる
    ケースがあるが、それはどのようなケースか?

    で箇条書きしてくれた方がまだまし。

    みたいなもので
    そのケースを箇条書きで示してくれた方がまだす。

    そして一時オブジェクトであっても関数側の参照引数で受け取られた
    ときは名前つきオブジェクトになってしまう
    されたときには
    で参照引数として 

464 デフォルトの名無しさん [] 2010/11/03(水) 15:08:09 ID: Be:
    ↑ああ、ゴミ消すのを忘れた。

465 デフォルトの名無しさん [sage] 2010/11/03(水) 15:49:15 ID: Be:
    実体として存在するのは、
    3.10-1
    ・lvalue (名前付き変数/&戻り値) と
    ・xvalue (&&戻り値) と
    ・prvalue (即値/値で戻ってきた戻り値)

    だけで、glvalue とか rvalue とかいうのは
    上記3つのうち二つをまとめて呼ぶときの略称みたいなもの。

    「左辺値には lvalue と xvalue があって、
     右辺値には xvalue と prvalue がある…??」

    のように思ってしまうと、訳が分からなくなる。
    そうじゃなくて、無機質に、rvalue は xvalue と prvalue の総称なんだな、と考える。

    そして左辺値参照と右辺値参照も、上の用語とは切り離して考える。

    「rvalue」という用語が出てきたとき、「右辺値参照」を連想してはいけない。
    この二つはカテゴリが違う概念だから。
    「rvalue」と言われたら、「xvalue か prvalueだな」と思って読む。

    ちなみに、参照に関しては↓のようになっている。
    8.5.3-5
     ・左辺値参照は lvalue を受け取れる
     ・特にconst左辺値参照は、なんでも受け取れる
     ・右辺値参照は、xvalueとprvalueを受け取れる。 

466 デフォルトの名無しさん [sage] 2010/11/03(水) 15:57:14 ID: Be:
    質問する側の分際で横柄だな
    別にいいけど

    (2)はxvalueのことだから、右辺値参照型の変数が評価される時だけだな

    (1)はめんどくさいな
    ・組み込みリテラル
    ・組み込み演算子の結果、ただし以下の左辺値を生ずる物は除く
     ・前置++、--
     ・単項*
     ・[]
     ・メンバの参照 . .* -> ->*
     ・=および+=の類
    ・関数(オーバーロード演算子とユーザー定義リテラルを含む)の戻り値、ただし左辺値参照型を返す場合を除く
    ・キャストおよびコンストラクタ呼び出し、ただし左辺値参照型への変換を除く

    きっと何か忘れてる 

467 465 [sage] 2010/11/03(水) 16:04:35 ID: Be:
    何を言いたかったかというと、

    > (2) 無名オブジェクトでも名前つきオブジェクトとして扱われる
    > ケースがあるが、それはどのようなケースか?

    こういう疑問が生じるのは多分
    「右辺値は無名だけど右辺値参照は名前付きで…???」
    みたいに用語の混乱を生じているからであって

    「prvalue か xvalue は rvalue reference で受け取ることができて、
    rvalue reference で宣言された変数は lvalue だ」

    と言えば混乱はない。

468 デフォルトの名無しさん [sage] 2010/11/03(水) 16:17:03 ID: Be:
    >rvalue reference で宣言された変数は lvalue だ
    xvalueじゃないの? 

469 デフォルトの名無しさん [sage] 2010/11/03(水) 16:17:18 ID: Be:
    xvalueってstd::moveで生成する以外だとどんなのがあるの? 

470 デフォルトの名無しさん [sage] 2010/11/03(水) 16:18:39 ID: Be:
    あ、右辺値参照の引数もか 

471 デフォルトの名無しさん [sage] 2010/11/03(水) 16:27:00 ID: Be:
    >>468
    5章の第6段落に書いてあるけど、
    名前付き&&参照は lvalue。
    関数の戻り値とか、名前のない&&参照は xvalue。

    だからf(int&& a) の引数 a は lvalue。

472 デフォルトの名無しさん [sage] 2010/11/03(水) 16:32:03 ID: Be:
    そうだったのか
    じゃあこれって合法なの?

    int &&x = 0;
    x = 42;

    なんだかなあ 

473 デフォルトの名無しさん [sage] 2010/11/03(水) 16:40:43 ID: Be:
    >>472
    一時変数が作られてるから合法のようだね。
    まあ、右辺値参照と明確に指示したんだからしかたなくね 

474 デフォルトの名無しさん [sage] 2010/11/03(水) 16:55:34 ID: Be:
    STLに右辺値参照使うのはいいんだけど、関数の種類が増えて実行ファイルが肥大しない? 

475 デフォルトの名無しさん [] 2010/11/03(水) 17:23:54 ID: Be:
    おお!何だこの難解なレスの伸びは。。。



    みんな静かに見てるんだな、怖ひ 

476 デフォルトの名無しさん [sage] 2010/11/03(水) 17:28:09 ID: Be:
    そりゃ主要なコンパイラがじわじわと対応してきているからね 

477 デフォルトの名無しさん [sage] 2010/11/03(水) 18:01:03 ID: Be:
    >>474
    インライン展開されるし、ムーブのコードのほうが小さいだろう。でなければ右辺値参照は使わない。 


■_ ほー

みねこあさんが喜びそうな

smarr's RoarVM at master - GitHub
README.rst

RoarVM - The Manycore SqueakVM

RoarVM, formerly known as the Renaissance Virtual Machine (RVM) is developed as part 
of a IBM Research project to investigate programming paradigms and languages for 
manycore systems of the future. Specifically, this VM is meant to support manycore 
systems with more than 1000 cores in the future.

The RVM was open sourced by IBM Research under the Eclipse Public License. Please see 
the open source announcement for further information

Today, the RoarVM supports the parallel execution of Smalltalk programs on x86 
compatible multicore systems and Tilera TILE64-based manycore systems. It is tested 
with standard Squeak 4.1 closure-enabled images, and with a stripped down version of a 
MVC-based Squeak 3.9 image.

The RoarVM provides parallel execution of Smalltalk processes and thus, the 
programming model is a typical shared-memory model similar to Java with its threads 
and classical Pthreads for C/C++.

関連 IBM researchers have open-sourced their VM allowing Squeak Smalltalk to run on up to 56 cores! : programming

■_

ショボーンクッション欲しい…

2010年11月03日

■_

・書評
InfoQ: Book Review: Making it Big in Software お、紹介されてる。翻訳されるかなあ。

・TAPL読書会
行ってきました。非常に知的な刺激を受けるのですが、しょーじきついて行くのがきついっす ○| ̄|_ 基礎体力的なところが足りてないんだろうなあ。

■_ 今日の丸投げ

宿題(課題)を丸投げするなら、文章をもうちっと考えてもらわないとw


BM法(ボイヤームーア法)について | OKWave

VisualC++にて、BM法のプログラムを作りたいと思いましたが、書き方が、わかりません。
概要を下記にまとめますので、どなたか、作ってみてくれませんか?
お早めにお願いします!!

1.scanf(入力関数(これ以外でも可))にて、テキスト(検索される文字列)を入力する。
2.上記にて、パターン(比較する文字列)を入力する。
3.BM法にて、1.と2.を比べて、あったら、"○○文字目にありました。\n\n"
4.続けて検索するか、しないか(While(これ以外でも可))を入力してもらう。
  (C(大文字か、小文字のC)を入力したら、続ける。E(大文字か、小文字のE)を入力したら、終了する)))

上記のような、プログラム作りは可能でしょうか?
可能なら、作ってみてくれませんか?
不可能なら、どこがダメか、どうしたらよいか、を踏まえ、サンプル的なプログラムを作ってみてくれませんか?

お願いします。

ANo.3

BM法を本当に知っているならそんなにむずかしいことではありません
プレーンのBM法だったら技術のレベルとしては従来の(それ以前の)検索方法とほとんど
かわりません
プレーンでなくジャンプテーブルを使う場合がちょっと複雑のように見えますが
それもジャンプテーブルを作ってしまえばあとはらくです

フルコードのサンプルもネットにありますので参考にするとよいでしょう

ANo.2

>BM法のプログラムを作りたいと思いました

この文と

>どなたか、作ってみてくれませんか?

この文って、矛盾してませんか?

「自分で」作りたいんじゃないんですか?
「自分の頭と手を」フルに使ってこそ、あなたのプログラミング能力が
向上するんじゃないんですか?
プログラミングのいちばんおいしいところを人に任せてどうするんですか?

補足

ご解答ありがとうございます。

考えて、ネットを見て回ったりもしましたが、ぜんぜんっていいほどわかりません。
つまり、意味はわかりますが、プログラムを作るまではできない程度。

なので、詳しい方のプログラムを教えていただき、勉強したいと思いました。

書き方が、悪くてすみません・・・

ANo.1

Tacosan

書き方:
1. BM のアルゴリズムを調べて理解する.
2. そのアルゴリズムを C なり C++ なりで実装する (これは普通関数にするんだろうなぁ).
3. その他の部分を作る.
4. 全体をデバッグしてきちんと動作することを確かめる.

「書き方がわからない」ということだから, これで十分だよね.

投稿日時 - 2010-11-02 22:57:47
補足

ご解答ありがとうございます。

意味は、わかります。
しかし、プログラムに直す作業(プログラミング)がわからなく、そこを教えていただけませんか?
(詳しくは、どんな風になるかを、サンプルみたいなもんを作ってみていただけませんか?)

まあわからないので実際のプログラムを見て理解したいとかいうのはよくあるパターンですね。 BMくらいならいくらでも転がってるのにねえ。

同じIDで別言語のところでも。


BM法(ボイヤームーア法)について(Visual Basic) | OKWave

VisualBasicにて、BM法のプログラムを作りたいと思いましたが、書き方が、わかりません。
概要を下記にまとめますので、どなたか、作ってみてくれませんか?
お早めにお願いします!!

1.テキストボックス(入力(これ以外でも可))にて、テキスト(検索される文字列)を入力する。
2.上記にて、パターン(比較する文字列)を入力する。
3.BM法にて、1.と2.を比べて、あったら、ラベル(これ以外も可)にて a(たとえば)
  & "文字目にありました。" & Chr(13) & Chr(13)
4.続けて検索するか、しないか(While(これ以外でも可))をテキストボックス(これ以外でも可)にて入力してもらう。
  (C(大文字か、小文字のC)を入力したら、続ける。E(大文字か、小文字のE)を入力したら、終了する)))

すべての入力には、テキストボックス(これ以外でも可)にて入力してもらい、ボタンをクリック
することによって、変数に代入される。

こちらの方法では、フォームのイラストを載せていただければ、ありがたいです。

上記のような、プログラム作りは可能でしょうか?
可能なら、作ってみてくれませんか?
不可能なら、どこがダメか、どうしたらよいか、を踏まえ、サンプル的なプログラムを作ってみてくれませんか?

お願いします。


ANo.2

kmee

> こちらの方法では、フォームのイラストを載せていただければ、ありがたいです。

さすがにこれは....
プログラムがまったく作れなくても、絵くらい描けるでしょ。出来の善し悪しは置いとくとしても。
それに、Visual Studioのデザイナを使えば、とりあえず、テキストボックス等の部品を並べて、
形だけは作ることができます。


(略)
ANo.1

imogasi

宿題みたいなものを、ここでコードまで教えてくれと言うのは、嘗てはこのコーナーの規約違反
であった。今はOKWAVEも甘くして、緩めているようだが。

こんなに露骨に>作ってみてくれませんか、と言うのは見るのは初めてです。

先生の回答・解説を見て勉強してください。判らないなら判らないと先生に言うのが、先生も実情把握になるでしょう。
ーー
http://www.geocities.jp/m_hiroi/light/pyalgo11.html
http://d.hatena.ne.jp/g940425/20100522/1274520718
などにこのアルゴリズムの考え方の解説が有ります。

結構見るけどなあ。>作ってみてくれ

■_ Why Should I Learn Ruby?


Why Should I Learn Ruby? - Stack Overflow

なぜわたしはRubyを学ぶべきなのか?

So far, my favorite programming language has been python, hands down, but I've been 
hearing a number of good things about ruby from various people I hold in good regard, 
so let me put it to you:

    * Why should I learn Ruby?

Please do not post something to the effect of "Because it is awesome" or 
"It's better than language X because..." I don't want a war on my hands. I'm 
looking for concrete examples of what makes Ruby a useful language to code in.

わたしは論争が起きることは望んでいません。
わたしが求めているのは具体的な例です
Ruby を useful な言語ならしめている

As Mike said, in ruby everything is an object, unlike Python where the primitives are, 
well, primitive. Another really elegant aspect of Ruby is anonymous code blocks. 
They're used all over the place, especially to replace loops that you see in other 
languages.

For example, if you want to repeat something 15 times, you can write:
たとえば何かを15回繰り返したいのなら、次のように書けます:

15.times do
  # do something here
end

Notice that you can actually read this like it's english.
これを英語のように読めることに気がつくかもしれません。

Or if you want to loop over an array, you can do:
あるいは配列に対してループしたいのなら、このようにできます:

%w{one two three}.each do |word|
  # this code is repeated with word = "one", then "two", then "three"
end

Naturally it supports map and reduce (called inject) as well:

map や reduce (injectと呼ばれています) も自然にサポートされます:

# sum the absolute values of every number in the array
nums.map { |x| x.abs }.inject(0) { |acc,i| acc + i }

If you use Ruby on Rails, or Ruby 1.9, this can be simplified even further:

Ruby on Rails や Ruby 1.9を使っているのなら、次のようにさらに単純にすることさえ
可能です;

nums.map(&:abs).inject(0, &:+)

In this case the &:abs sequence is the same as :abs.to_proc which returns an 
anonymous code block that calls the abs function on its first argument. And &:+ 
returns an anonymous code block that calls + on its first argument, passing in the 
second argument to the + method.

この例における &:abs という sequence は :abs.to_proc と同じ意味で
無名ブロックを返します
その最初の引数に対して abs 関数を呼び出す
また、&+ は無名ブロックを返します
第一引数に対して + を呼び出し
その+ メソッドに対して
第二引数を渡します


Another common thing to do in Ruby is to write a DSL. One of the more popular ones is 
used by Rake, a make replacement for Ruby. A simple Rakefile might look like this:

desc "Build and run"
task :run => [:build, :launch]

desc "Build the project"
task :build do
  sh "xcodebuild -configuration Release build OBJROOT=build/ SYMROOT=build/"
end

desc "Clean the project"
task :clean do
  sh "xcodebuild clean OBJROOT=build/ SYMROOT=build/"
end

task :launch do
  sh "build/MyProject.app/Contents/MacOS/MyProject"
end


"nums.map { |x| x.abs }.inject(0) { |acc,i| acc + i }"
You can't quite read this bit as english though... 

これは英語のようには読めねーだろう

Actually, you're totally wrong about python. Python doesn't have primitives at all. 
You might be one of the confused ruby fans misquoting some old python documentation, 
but rest assured that everything in python is an object, and has been since at least 
2.0. 


since you are using fake data to make your point. In Python, everything is an object too. 


I don't think I've touched Python since before version 2.0, and I'm pretty sure the 
last time I did, the primitives were primitive, with the language doing a bit of work 
to hide that from you. I could be wrong though, but the fact that you had to call 
functions that accepted the "primitive" types instead of calling methods on 
those values does imply that they were primitive.

You should stick with python.

Ruby libraries try too hard to look like natural language. This may seem good at first, 
since it sometimes makes it easier to read the code's intent. However, it soon feels 
like you're learning a new language every time you want to use another ruby library. 
You can't take anything for granted. Suddenly you can't make use of any familiar tools, 
and you can't even find clever ways to use someone's quirky library -- you have to do 
it the way they designed it. It defeats my programmer spirit. Take this bit of rspec 
for example:

MyClass.stub!(:new).and\_return("foo")
MyClass.should\_receive(:new).at\_least(5).times.with("bar")
# What sort of object does at\_least(int) return that only times() can act on?

As you create bigger projects, it becomes increasingly important to be explicit and 
use namespaces to your benefit. Ruby developers tend to pretend namespaces don't exist, 
and will use mixins all over that can break things. Modules are rare, and piece-wise 
import does not exist. Also, there is no way to tell at a glance if a method you're 
calling is part of the same scope, same class, a parent class, or even global -- they 
all look the same, and can clobber each other since ruby does not support shadowing.

As for Ruby Blocks, python introduced those in 2.5. They're called generators, which 
are just regular functions that contain the yield statement, and act like iterators. 
This implementation is even more useful than ruby's.

To ruby's benefit, its standard library is much more consistent with object oriented 
languages, while much of pythons standard library is a thin wrapper on C. Some 
standard functions were designed backwards, like len(sequence) instead of 
sequence.length and ", ".join(sequence) instead of sequence.join(", 
"). I think this is why some people say python is 'not as object oriented', even 
though technically it is. But don't get me started on python's time/datetime modules.

Also, there are some really neat ruby libraries, like Shoes, which may be the only 
reason you need to start learning =]

In conclusion, I would not say it's a bad idea to learn ruby. It can be a lot of fun. 
In fact, I used to prefer it. But now that I've used the two for a few years, I find 
python to be a lot more practical for larger projects. I've come to agree with import 
this.


If you already know python, I'm not sure you should learn ruby.

If you don't already know a more enterprise-y language like Java or C#, I'd learn that 
instead. You already know a very good and powerful loosely typed language which is 
ideal for all the same things ruby is. Better learning something more different to not 
only improve your skill set, but also learn from a wider breadth of tools.

The biggest reason to switch is the block support, both in syntax and in the standard 
library. It's a great bit of shorthand for passing a closure into a method. You may 
take a bit of this functional programming style with you back in Python land as well.

From a purely technical standpoint, Ruby and Python are really quite similar. Their 
differences are social and philosophical.

You may or may not like the DSL style that many Ruby libraries use. I find that 
they're great for surface-level usability (especially when there's good documentation), 
but it creates a bit of a road block when you need to understand exactly what's going 
on.

If you're looking to broaden your technical skills, and you know Python backwards and 
forwards, then you might get more out of a more distinct language. Good candidates 
include Smalltalk, O'Caml, Haskell, and Erlang.


From a purely academic perspective, learning Ruby might be useful because it provides 
you a different approach to how particular problems could be solved. Something that 
might be done "the one true way" in python could be done a totally different 
way in Ruby - which might in turn provide a method of improving your Python code.

This reason is the same reason you should learn as many programming languages and 
paradigms as you can.


Ruby is a very elegant and powerful language with a strong community behind it. I know 
I switched from Python to Ruby a while ago because of the elegance of Ruby, and not 
for any particular practical reason, but I've never regretted it. If you give examples 
of the sort of work you do in Python, it might be easier to show why Ruby's a better 
fit (or maybe why it isn't).

日本とあまり議論の内容が変わらないような。

■_

Windowsを64bitに移行したらエラーが・・・ - C&C++ - 教えて!goo http://oshiete.goo.ne.jp/qa/6294884.html

■_

Lions' Commentary on UNIX 読書会メモ#1 - やる気のないはてだ http://d.hatena.ne.jp/takahirox/touch/20101031/1288525040

■_ 本日の巡回から

■_

活動限界に達しました ○| ̄|_

最近ぐだぐだが続いてごめんなさい。

2010年11月02日

■_

予習が

■_ メタでネタ

アニメが元ネタのは流行廃りが激しいから使いにくいんじゃなかろうかと言う気も。 わたしは好きだけどね。

推薦図書/必読書のためのスレッド 59 
143 デフォルトの名無しさん [sage] 2010/11/01(月) 22:12:29 ID: Be:
    メタプログラミングは
    魔術みたいなもので、
    ビックリすることが
    できるようになる
            ---Matz

    http://www.amazon.co.jp/dp/4048687158/

147 デフォルトの名無しさん [sage] 2010/11/01(月) 22:39:30 ID: Be:
    >>143
    俺も、オレも
    びっくりしたい。 

148 デフォルトの名無しさん [sage] 2010/11/01(月) 23:34:50 ID: Be:
    メタプログラミング程度でびっくりするようでは困るな 

151 デフォルトの名無しさん [] 2010/11/02(火) 02:24:35 ID: Be:
    メタプログラミングRuby
    ただ一つ気になるのが、ちょくちょくアニメ?系のオタクくさいネタが盛り込まれている。
    訳者の趣味なのかもしれないが、「ジャッジメントですの!」とか「恐ろしい子」とか正直うすら寒い。
    フレーズはネット上で目にするものの、アニメに興味がなく元ネタをしらない私だからだろうが。
    原著がこういうノリ(もちろんネタは違うだろうが)なら仕方ないが、どうなんだろう?
    個人的には技術書でこういうのは好きじゃない。
    ネタ仕込むにしても、もっと一般受けするネタあるだろうに・・・

    でも内容は素晴らしいのでRubyやらない人にも学びある一冊だと思う。

    投稿者 pinzolo
    4 コメント:
    kdmsnr さんのコメント...
    私もネット上で目にするものの、アニメに興味がなく元ネタをしらないです。

    pinzolo さんのコメント...
    コメントありがとうございます。
    結構そういう人多いと思うんですよね。
    いろんなジャンル(アニメ、映画、小説)などからの小ネタを入れるならいいんですが、
    特定ジャンルに偏られるとちょっと・・・って感じでした。

    kdmsnr さんのコメント...
    あ、説明が足りませんでした。私は訳者ですが、アニメに興味はないし、偏ったつもりはないです。

    pinzolo さんのコメント...
    あ、訳者の方でしたか。失礼しました。
    まあ、あくまで一読者の感想です。 

152 デフォルトの名無しさん [sage] 2010/11/02(火) 02:29:21 ID: Be:
    ジャッジメントですの!知らんとか人生損してるな。これだから視野が狭いプログラミング馬鹿は 

154 デフォルトの名無しさん [sage] 2010/11/02(火) 03:02:49 ID: Be:
    ラクダ本の推薦図書に指輪物語が入ってたのをなぜか思い出した 

155 デフォルトの名無しさん [sage] 2010/11/02(火) 03:28:14 ID: Be:
    one ring~~
    の下りが何かの本で使われてたのだが
    思い出せねー 

156 デフォルトの名無しさん [sage] 2010/11/02(火) 04:49:54 ID: Be:
    >>151
    原著は外人?
    で、いきなり訳者出てきたんだ
    いろいろネット怖い 

157 デフォルトの名無しさん [sage] 2010/11/02(火) 04:54:04 ID: Be:
    ロベールの翻訳家に頼まないからこういうことになる 

158 デフォルトの名無しさん [sage] 2010/11/02(火) 05:03:16 ID: Be:
    なにゆえメタプロミングRuby日本語版に
    ジャッジメントですのなんていうフレーズが混じったのか

    * 原著者がアニ/ラノベオタで角さんは素直に訳しただけ
    * 角さんのまわりがアニオタばかりで影響されて元ネタを知らずに使った
    * そもそもそんなフレーズは出てこない
    * かどさんがじつはあにおたでうそをついている

    さあどれだ 

159 デフォルトの名無しさん [sage] 2010/11/02(火) 05:05:50 ID: Be:
    メタプロミングってなんぞ

    >>155
    ぐぐったらダイテル本で使われてるっぽいが 

160 デフォルトの名無しさん [sage] 2010/11/02(火) 05:48:40 ID: Be:
    訳者のアドリブでないとすると原著者が(ルビー本だし)日本で買ってもらえるように気を利かせてアニメネタ仕込んだって感じかも

    世界から見たら日本のプログラマーはアニオタなんだよきっと 


「かどさん」w

■_

落ち着いて考えればすぐにわかりそうなものだけどねえ


スレ立てるまでもない質問はここで 108匹目 
184 デフォルトの名無しさん [] 2010/11/02(火) 10:12:51 ID: Be:
    .jpgで元画像と縮小画像が同一って判別するにはどうしたらいいんでしょ?
    .bmpならまあまあの精度でいけたけど.jpgわけわからん 

185 デフォルトの名無しさん [sage] 2010/11/02(火) 10:13:57 ID: Be:
    アホか 

186 デフォルトの名無しさん [sage] 2010/11/02(火) 10:16:39 ID: Be:
    >>184
    どこが判らんの。「元画像と縮小画像の同一性判断」なんてのは画像フォーマットで変わるものじゃないだろ。 

187 デフォルトの名無しさん [sage] 2010/11/02(火) 10:39:52 ID: Be:
    >>186
    適当にバイナリエディタでいじって調べてるんですがjpgだと一カ所触ると予想外の所まで見た目変わってどの部分で比較したら良いのか検討つかんのです
    そもそものアプローチの仕方が間違ってる気がしてきましたが・・・ 

188 デフォルトの名無しさん [sage] 2010/11/02(火) 10:44:41 ID: Be:
    おwwwいwww 

189 デフォルトの名無しさん [sage] 2010/11/02(火) 10:55:13 ID: Be:
    ………いやだもうw

    >>187
    圧縮系の画像フォーマットの場合はファイル内のバイナリのまま加工できない。
    一旦適切なライブラリでメモリ上にロードしてから加工するか、ツールでbmpに変換すればいい。 

190 デフォルトの名無しさん [] 2010/11/02(火) 10:57:32 ID: Be:
    あ、そっか(汗
    めちゃめちゃありがとうございます!! 

■_ PHPは

Why does PHP get so much negative feedback? : PHP に対する反応?


hopeseekr comments on Why does PHP get so much negative feedback?
This is why people think PHP sucks:

    * PHP Developers  (PHP 開発者は)
         1. Do not know how to debug (use breakpoints, local windows, etc.)
            デバッグのやり方を知らない

         2. (worse!) Know how and don't want to!

         3. Prefer littering code with print_r()s and if (DEBUG_MODE) { error_log('debug info'); }
            print_r() や if (DEBUG_MODE) {error_log('debug info');}でコードを汚す

         4. Don't use an IDE, prefering dumb editors (w/o autocomplete, syntax error checking, etc. etc.)
            IDEを使わず、低機能なエディター(オートコンプリートや構文チェックなどがない)を好む

         5. Don't know what Unit Tests are.
            ユニットテストが何であるかを知らない

         6. Don't know what Design Patterns are.
            デザインパターンが何であるかを知らない

         7. Don't know how Object Oriented Programming is supposed to work.
            オブジェクト指向プログラミングが動作するためにどのような仮定をしているか知らない

         8. Have no fracking idea what encapsulation truly is.
            本当に隠蔽すべきものが何であるかについてきちんとした考えを持っていない

         9. Have no idea what XSS is or how to prevent it.
            XSSが何であるかを知らなかったりそれをどのように防ぐのかを知らない

        10. Have a slight idea of what SQL injection is but don't know what prepared statements are.
            SQLインジェクションがどういったものであるかは知っているがプリペアードステートメント
            が何であるかを知らない。

        11. Have horrible coding styles.
            コーディングスタイルがひどい

Hell! I hate working w/ the majority of my senior developer coworkers and prefer 
junior devs over them almost all the time (at least juniors listen and learn!).

Then they don't like these things about PHP:

    * They have a hard-on about precompiled code and don't know about opcode cachers.

    * They think non-uniform languages are stupid, forgetting that English is dominant and
      is much more messed up (e.g. it doesn't matter much if it gets the job done).

    * They stopped being up to date w/ the status of the language sometime in 2005 and
      refuse to realize that it has grown tremendously.


You work with shitty coders =/

Most of those things mentioned are just plain ol' programming no-noes, which I could 
say about the Fortranosaurus programmers before me.

I do disagree with the use of an IDE, but only out of personal preference. It's the 
difference between a slingshot and a Cadillac when knocking bottles off of a fence. 
You can knock down the bottle with the Cadillac, but you should first get insurance, 
then a license, then put your seat belts on, then obey all the rules, then {...}. Or - 
slingshot one-shot, done.

This is providing, of course, you don't NEED a little hand-holding. For Java, I need 
hand-holding == I use Eclipse. For PHP, it's closer to my native perl, so using a big 
licensed beast of software to "help" me with it is overkill. To each his own 
I suppose.

Everything else, /thumbsup


    You work with shitty coders =/

i.e. 99% of PHP developers.


i.e. 99% of all coders, which was the point of my response. Alot of the Java 
programmers I know are lazy asshats, but I don't hold it against every Java programmer 
or the language itself - because that's irrational.

/stare

    because that's irrational.

You talk about me being irrational yet you turned my statement about developers into a 
statement against the language itself, though I do have a lot of problems with PHP, I 
think the development behind it is behind the times and not forward-thinking enough, 
almost scared to push the boundaries as it were.

Another illogical thing you imply is in the anecdote you offer about Java developers, 
even if Java developers are lazy, does that automatically let all of the PHP 
developers off the hook, or is that an extremely lazy way of looking at things? 
"I know X is shit, but Y is shit too, let's all stay shit".

I've worked on well over 100 PHP projects, from small to large in my career, the PHP 
projects are invariably terrible, I'd say 9 out of 10. Of the Ruby projects, 9 out of 
10 are expertly architected, well thought out and worked on by intelligent people. 
Maybe its just a coincidence?


Fair enough, brother. Karma for tenacity.


To be fair, you're actually referring to "bad developers" rather than 
"php developers". I've seen all of the above traits in programmers from all 
languages.


    I've seen all of the above traits in programmers from all languages.

Yeah, there's just a brutally high proportion on bad PHP developers.


Arguably this is because this is much higher number of new-to-programming developers 
coding PHP than other languages.


You're right, I wouldn't disagree with that point at all, the problem is that when 
developers mature; they tend to leave..


These assumptions are stupid an irrational. I really wonder if one sucks at PHP, would 
the same person be better off with another language?

訳文をつけている余裕がありませんが、ひどい言い様なのはまあ伝わるのではないかと。

■_

“dead tree versions”→紙の本、ですか。 どっち買おう。


Shedding Bikes: Programming Culture And Philosophy

By Zed A. Shaw

LPTHW 1.0, Almost Published

I just put up the 1.0 version of Learn Python The Hard Way after a large number of 
edits, some revisions, and a lot of cleaning up the prose. There are probably a few 
errors here and there still, but it should be fairly tight.

If you get a chance, grab the PDF and give it a quick read through. Report any bugs 
you find as a ticket and I'll fix them up.

Tomorrow I will get the book all prepared for lulu.com and then people can start 
getting dead tree versions. I'm going with simple cover art, black and white, and 
8.5x11 format so it's easy to read while you work through it.

以下略

■_

2010年11月01日

■_

・センゴク外伝桶狭間戦記
義元公討死

・ムダヅモ無き改革
(ネタバレ防止)

■_

■_


BASIC Programming and Chipmunk Basic Home Page

# GE TeleBasic in GE-235 Assembly - Source code for one of the very first 
implementations of Basic for the Dartmouth Time Sharing System, 1965

# DEC TSS/8 Basic for the PDP-8 - another early (1969-1971) implementation of Basic 
for DEC minicomputers in assembly language (tokenizing compiler+interpreter) 

の、GE TeleBasic のリンク先が消滅しているようでしょんぼりんぐ。

それはさておきこっち。

Palo Alto Tiny Basic 8080 asm source code (Bruce Sherry's disk version 3.1 of Lichen 
Wang's Tiny Basic) 
  

これか。インテル表記のアセンブラは良く覚えてないんだよな(ザイログ表記専門)。

;**************************************************************
;* 
;*                TINY BASIC FOR INTEL 8080
;*                      VERSION 1.0
;*                    BY LI-CHEN WANG
;*                     10 JUNE, 1976 
;*                       @COPYLEFT 
;*                  ALL WRONGS RESERVED
;* 
;**************************************************************
;* 
;*  ;*** ZERO PAGE SUBROUTINES ***
;* 
;*  THE 8080 INSTRUCTION SET LETS YOU HAVE 8 ROUTINES IN LOW 
;*  MEMORY THAT MAY BE CALLED BY RST N, N BEING 0 THROUGH 7. 
;*  THIS IS A ONE BYTE INSTRUCTION AND HAS THE SAME POWER AS 
;*  THE THREE BYTE INSTRUCTION CALL LLHH.  TINY BASIC WILL 
;*  USE RST 0 AS START AND RST 1 THROUGH RST 7 FOR 
;*  THE SEVEN MOST FREQUENTLY USED SUBROUTINES.
;*  TWO OTHER SUBROUTINES (CRLF AND TSTNUM) ARE ALSO IN THIS 
;*  SECTION.  THEY CAN BE REACHED ONLY BY 3-BYTE CALLS.
;*  IN ORDER TO CONFIGURE THE SYSTEM FOR USE WITH CPM I HAVE
;*  MOVED SOME OF THE ROUTINES AROUND.  START WILL NOW BE AT
;*  LOCATION 100H AND THIS SECTION WILL END AT LOCATION 3FH
;*  WITH A JUMP TO 108H.
;* 
;       ORG  8H
;       XTHL           ;*** TSTC OR RST 1 *** 
;       RST  5         ;IGNORE BLANKS AND 
;       CMP  M         ;TEST CHARACTER
;       JMP  TC1       ;REST OF THIS IS AT TC1
;* 
;CRLF   MVI  A,0DH     ;*** CRLF ***
;* 
;       PUSH PSW       ;*** OUTC OR RST 2 *** 
;       LDA  OCSW      ;PRINT CHARACTER ONLY
;       ORA  A         ;IFF OCSW SWITCH IS ON
;       JMP  OC2       ;REST OF THIS IS AT OC2
;* 
;       CALL EXPR2     ;*** EXPR OR RST 3 *** 
;       PUSH H         ;EVALUATE AN EXPRESION 
;       JMP  EXPR1     ;REST OF IT IS AT EXPR1
;       DB   'W' 
;* 
;       MOV  A,H       ;*** COMP OR RST 4 *** 
;       CMP  D         ;COMPARE HL WITH DE
;       RNZ            ;RETURN CORRECT C AND
;       MOV  A,L       ;Z FLAGS 
;       CMP  E         ;BUT OLD A IS LOST 
;       RET
;       DB   'AN'
;* 
;SS1    LDAX D         ;*** IGNBLK/RST 5 ***
;       CPI  40Q       ;IGNORE BLANKS 
;       RNZ            ;IN TEXT (WHERE DE->)
;       INX  D         ;AND RETURN THE FIRST
;       JMP  SS1       ;NON-BLANK CHAR. IN A
;* 
;       POP  PSW       ;*** FINISH/RST 6 ***
;       CALL FIN       ;CHECK END OF COMMAND
;       JMP  QWHAT     ;PRINT "WHAT?" IFF WRONG
;       DB   'G' 
;* 
;       RST  5         ;*** TSTV OR RST 7 *** 
;       SUI  100Q      ;TEST VARIABLES
;       RC             ;C:NOT A VARIABLE
;       JMP  TSTV1     ;JUMP AROUND RESERVED AREA
       ORG  100H      ;OF CPM.
START  JMP  NINIT      ;GO TO INITIALIZATION ROUTINE.	JIF
TSTV1  JNZ  TV1       ;NOT "@" ARRAY 
       INX  D         ;IT IS THE "@" ARRAY 
       CALL PARN      ;@ SHOULD BE FOLLOWED
       DAD  H         ;BY (EXPR) AS ITS INDEX
       JC   QHOW      ;IS INDEX TOO BIG? 
       PUSH D         ;WILL IT OVERWRITE 
       XCHG           ;TEXT? 
       CALL SIZE      ;FIND SIZE OF FREE 
       RST  4         ;AND CHECK THAT
       JC   ASORRY    ;IFF SO, SAY "SORRY"
SS1A   LXI  H,VARBGN  ;IFF NOT, GET ADDRESS 
       CALL SUBDE     ;OF @(EXPR) AND PUT IT 
       POP  D         ;IN HL 
       RET            ;C FLAG IS CLEARED 
TV1    CPI  33Q       ;NOT @, IS IT A TO Z?
       CMC            ;IFF NOT RETURN C FLAG
       RC 
       INX  D         ;IFF A THROUGH Z
TV1A   LXI  H,VARBGN  ;COMPUTE ADDRESS OF
       RLC            ;THAT VARIABLE 
       ADD  L         ;AND RETURN IT IN HL 
       MOV  L,A       ;WITH C FLAG CLEARED 
       MVI  A,0 
       ADC  H 
       MOV  H,A 
       RET
(略)
  

■_

#!/usr/local/bin/ruby
# -*- coding: cp932
#1) (1/1x3) + (1/2x4) + (1/3x5) + (1/4x6) + ... = 3/4
#
#2) 8{(1/1x3) + (1/5x7) + (1/9x11) + (1/13x15) + ...} = π
#
#3) 2(2x2/1x3 x 4x4/3x5 x 6x6/5x7 x 8x8/7x9 ...) = π
#
#4) 3(6x6/5x7 x 12x12/11x13 x 18x18/17x19 ...) = π
#
#5) 4(1 - 1/3 + 1/5 - 1/7 + 1/9 - ...) = π

def chiebukuro(init, eps, op, blk)
 n = 1
 ans = init
 prev = 0.0
 while true
   xn = blk.call(n)
   #puts "x#{n}=#{xn}"
   break if (xn - prev).abs < eps
   #ans *= xn
   ans = ans.send(op, xn)
   prev = xn
   n += 1
 end
 [n, ans]
end

=begin
n, pi = chiebukuro(0.0, 1e-5, :+) do |i|
 sign = i % 2 == 0 ? -1 : 1
 xn = sign * (1.0 / (2 * (i - 1) + 1))
 xn
end
puts "n=#{n}, pi=#{4*pi}"

n, pi = chiebukuro(1.0, 1e-10, :*) do |i|
 xn = ((2 * i) ** 2).to_f / ((2 * i - 1) * (2 * i + 1))
 xn
end
puts "n=#{n}, pi=#{2*pi}"

n, pi = chiebukuro(0.0, 1e-10, :+) do |i|
 xn = 1.0 / ((4 * i - 3) * (4 * i - 1))
 xn
end
puts "n=#{n}, pi=#{8*pi}"

=end

expr = proc{|i| ((6 * i) ** 2).to_f / ((6 * i - 1) * (6 * i + 1))}
n, pi = chiebukuro(1.0, 1e-10, :*, expr)
puts "n=#{n}, pi=#{3*pi}"

[[4.0, 0.0, 1e-5,  :+, proc{|i| (i % 2 == 0 ? -1 : 1) * (1.0 / (2 * (i - 1) + 1))} ],
 [2.0, 1.0, 1e-10, :*, proc{|i| ((2 * i) ** 2).to_f / ((2 * i - 1) * (2 * i + 1))} ],
 [8.0, 0.0, 1e-10, :+, proc{|i| 1.0 / ((4 * i - 3) * (4 * i - 1))} ],
 [3.0, 1.0, 1e-10, :*, proc{|i| ((6 * i) ** 2).to_f / ((6 * i - 1) * (6 * i + 1)) } ]].each do
 |e|
 n, pi = chiebukuro(*e[1..-1])
 puts "n=#{n}, pi=#{e[0]*pi}"
end


■_ その考えはなかった


C言語の質問です。 文字列は”列”と書いてありますが、 行列で考えた時には”行”です... - Yahoo!知恵袋

C言語の質問です。
文字列は”列”と書いてありますが、
行列で考えた時には”行”ですよね?
横に続いていますし、、、 

■_

■_

ぺーすあがらねー


一つ前へ 2010年11月(下旬)
一つ後へ 2010年11月(中旬)

ホームへ


Copyright (C) 2010 KIMURA Koichi (木村浩一)

メールの宛先はこちらkbk AT kt DOT rim DOT or DOT jp