累乗の考え方

[mathjax]
累乗は中学の数学で習います。特に難しいものではなく、特定の掛け算のやり方を分かりやすく表すためのものです。


$$3^2 = 3 × 3 = 9$$

これは”3の2乗(さんのにじょう)”と読みます。意味は3×3という意味です。3を2個、掛け算×するという意味です。


$$2^3 = 2 × 2 × 2 = 8$$

これは”2の3乗(にのさんじょう)”。意味は2を3個、掛け算×するという意味です。


$$a^2 × a^3 = (a × a) × (a × a × a) = a × a × a × a × a = a^5$$

慣れるとなぜそうなのかは考えずに答えがすぐ頭に浮かぶ状態になりますが、そうなる前に、どう計算するかわからなくなってしまったら、掛け算だけを使う式にもどって考えます。


$$(a^2)^3 = (a × a) × (a × a) × (a × a) = a × a × a × a × a × a = a^6$$

というように、掛け算だけで考えるとすぐにどういう仕組みかわかると思います。

no + 可算名詞のパターン: He’s got no children. / He’s got no wife.

no + 可算名詞 のパターンでは、可算名詞は複数形にするのが普通です。しかし意味が変になるときは単数にするほうが自然です。

He’s got no children. (more natural than He’s got no child.)

He’s got no wife. (more normal than He’s got no wives.)

Practical English Usage にはこういう有用な語法がいっぱい詰まっていますね。

 

Started to give it a try to write ISLisp to C translator

2017/04/09

I just started to write a ISLisp to C translator.

I’ve read the source code of Kyoto Common Lisp (currently known as Gnu Common Lisp (GCL, not Gnu CLisp)) before, which uses a C compiler on the fly. So I knew that’s possible.

My goal is to write portable code.

And another project is to link with the Gnu MP library (the GNU multiple precision arithmetic library).

By the way, I’m using  the BoehmDemersWeiser conservative garbage collector.

Happy hacking!

Download the latest kiss (the translator has not been included yet.)

 

ISLisp processor KISS

KISS is aimed to be a conforming ISLisp processor.
The development is at the initial stage.

The current KISS is an interpreter written in C and ISLisp.

The rep loop is already running.

The object system and generic functions are working, too.

The license of this software is GPL. See gpl.txt in the zip file.

Download the latest version of kiss.zip .

Any comments are welcome.
I read English and Japanese.

ISLisp処理系KISS配布所

ここにリンクを貼っときます。最新版ですね。
ブログを更新しなくてもその時点での最新版を置いておきます。

 

最終的にはKyoto Common Lispに敬意を表して、Cへのトランスレータを書きたいと思っています。ただし十年二十年単位での話です(そんなに生きるつもりかよというのはなしで(笑))。飽きたら放置に入るのはご容赦ください。

でですよ、Cへのトランスレータが仮にできたとしたら、いまLispで実装していることに速度的な意味が生じますね。Cのような仮想アセンブラより抽象化がすすんだLispで書いたほうが読みやすいのはだれでも納得していただけると思います。で、速度的にトランスレータでCになれるんならより抽象度の高いLispで書いたほうがいいんですね。

2017/04/05: ライセンスをGPLにしてstring.cとstring.lispで作業をしました。
2017/04/04: いまは number.c と number.lisp を書いてます。

お気楽プログラミング再開しました

4年くらい前に書いていたkissという名前のなんちゃってISLisp言語処理系をクラウドストレージから掘り出して、またいじりはじめました。

インタープリタとしてC言語で実装してありますね。setjmpなんかでLispのコントロール構造を実装してあります。

で、C言語なんですが、読めば一応わかりますが、重箱の隅は忘れているので、誉れ高いC言語のバイブルK&Rをネットで無料で調達して、リファレンスマニュアルをざっと確認しました。

いやー、いいですねプログラミングは…。

msys2をインストールして、gcc *.c でコンパイルしようとしたら、ワーニンングがたくさんでました。wchar_t関係ですね。で、頭にきたので全部charに変更して動くようにしました。昔ながらのstrcmpなんかが変な名前の関数使わなきゃいけないんでヤだったんですよね。

ただ楽しみのためだけにプログラミングすることにしました。

で、すでに偉そうにオブジェクトシステムとかジェネリックファンクションなんかも実装してあるので(そこで力尽きたみたいです)、ベクタとか残りを実装して、ノリでISOから規格書(約2万円!)もそのうち買って、規格準拠の処理系ですなんてすました顔して公開してみたいなと思っています。

 

Plant Rights財団(植物の権利財団)設立のお知らせ

私、峯島雄治は2017年4月1日をもってPlant Rights財団の設立を宣言いたします。

Plant Rights財団とは、植物には人間から搾取されたり残虐な扱いを受けることなく、それぞれの植物の本性に従って生きる権利があるとする考え方を広めていくのが目的の団体です。

生物という観点から見てみると、植物も立派な生き物です。人間は動物なので植物のことに共感しにくいだけです。それだからといって彼らを虐待したり搾取したりしてよいのでしょうか。

たとえば植物だって虫に葉を食われればそれを危機として察知して化学物質を放出します。つまり攻撃を受けていることを認識しているのです。

また複数の植物同志がお互いに空間を譲り合って葉を茂らす有名な現象もあります。つまり共生という概念を体現しているのです。

我がPlant Rights財団では当面は以下の三点を活動の中心として活動してゆきます。みなさまからの暖かい寄付をよろしくお願いいたします。

・日本で広く行われている植物へのひどい虐待である盆栽の撲滅を目指し、またこの文化が海外へ広がることを阻止します。

・植物を使った紙の完全廃止を目指します。

・ベジタリアンの肉食への転換を求めてゆきます。