-
Notifications
You must be signed in to change notification settings - Fork 2
diary
English page is here >> English page
2018/03/05
version 3.7.1リリースです。多重代入やらタプルの簡単な表記などを入れました。まあ、perlでさえ多重代入があったので、入れなければならないと思っていたので。これで変数の値の交換などができます。(x, y) = (y,x)みたいな感じで。右辺値はタプルの簡易表記です。ちょっとタプルが使いづらかったですが、これで使いやすくなったと思います。メソッドで複数の値を返す時はタプルを使うと良いでしょう。それで、メソッドの戻り値を受ける側では多重代入でローカル変数として値を受け取ると便利になるはずです。ただ、ちょっと手抜きがあります。この多重代入ではフィールドやクラスフィールドへの代入が出来ないところです。また気が向いたら実装するかもしれません。後は、やり残しは後はThread, Socketですかねぇ、、、、。最後まで放置するかもしれませんが、、、。Socketは単なるライブラリなんで、すぐにも実装できますけど、ThreadはClover1で安定させるのに3ヶ月かかったので、ちょっと実装できるか分かりません。また気が向いたらですね。他にもRubyの基礎ライブラリにあってClover2にないものは実装したいとおもってますけどね。まあ、気長に実装していきます。リフレクションはあんまりいらないかなと思ってます。面白いんですけどね。それよりコンパイル時がチューリング完全な方がカッコいいなぁと思います。それはかなり面白いので作っちゃうかもしれません。それは確かに面白そうですねぇ、、、。
2018/02/23
version 3.6.5リリースです。とりあえず、REPLの補完は安定したと思います。src/interpreter.cはかなりスパゲティプログラムです。ただ、ユーザーインターフェスに近い部分のコーディングってある程度は複雑になるのは仕方がないと思っています。それでバグフィックスに苦労したんですよね。あんまりもういじりたくはないです。
version 3.6.5でやりきった感があります。Thread, Socketなど入れなければならないライブラリはありますが、もうぼちぼち、ご隠居生活します。あとは毎日1メソッド、C言語のライブラリやシステムコールを入れていくだけですかね。Threadもライブラリは作らないでネイティブメソッドとして提供するという方法もありますね。ソケットはそれでいけるかな。他にはClover2のパーサコンビネータをClover2自身で作ったり、LispをClover2で実装したりとかは考えてます。
しかし、REPLはPowerShellやJavaのIDEのように強力です。シェルの代わりに使えなくもないです。まあ、今日日サーバー上で直接作業する人も少ないでしょうし、bashやzsh, yashなどのPOSIXシェル以外のユーザーインターフェースに慣れてしまうと、bashで作業できなくて困るとかあるでしょうし、大した意味はないんですけどね。まあ、bashに飽きたら使ってみてください。
Clover2のREPLではmfilerシリーズ、xyzshでしたかったことがついに出来たという気はします。僕がmfiler2を開発していた22歳からですし、18年くらいですかね。やっと僕好みのシェルが出来たなと言う感じです。まあ、僕も介護福祉士として介護施設で働いているので、僕自身にはもう大した意味はありませんが、、、。みなさんがREPLを使ったり、スクリプトを書いてサーバーの管理を楽しくしていただけると幸いです。
それではenjoy programing!
- フリーフォーマット
- 変数と関数について
- 条件分岐と演算子
- 論理演算子
- ビット演算子
- ループ
- ブロック
- コメント
- アノテーション
- ナルエイブル
- プリミティブクラス
- 配列
- クラス
- クラスフィールドとクラスメソッド
- dynamic_class
- boxingとunboxing
- プリミティブ型とスペシャルフィールド
- スペシャルメソッド
- インターフェース
- 移譲
- モジュール
- ジェネリクス
- メソッドジェネリクス
- 関数
- 列挙型(enum)
- 自動setterとgetterの定義
- when文
- 変数の宣言の取り消し
- 例外処理
- 多重代入
- 代入時の自動キャスト
- C言語へのFFI
- ローカル変数の宣言
- メモリーセーフなポインタ
- 例外演算子
- 糖衣構文