LispとObjective-Cを融合させたプログラミング言語「Nu」0.9.0 リリース 47
ストーリー by soara
ニウエの Lisper 部門より
ニウエの Lisper 部門より
hylom 曰く、
Objective-Cと Lispを融合させたプログラミング言語「Nu」のバージョン 0.9.0が 7月 2日にリリースされた(GitHubのコミット)。
NuはObjective-Cで実装されたオブジェクト指向のインタプリタ言語で、Lisp由来の文法と Objective-Cのクラス機構を備えているのが特徴。Mac OS Xの Cocoa APIや各種ライブラリにアクセスでき、OS Xのネイティブな GUIアプリの開発が可能。
Nuの歴史はまだ浅く、知名度も低いものの、作者はブログにて「Nuはそのバージョン番号やWebサイトのアクティビティから想定されるよりもずっと安定しており、重要なアプリケーションのプログラミングにも安心して利用できる」との旨を述べている。
Nu言語の日本語の記事としてはCodeZineの「Nuで Mac GUIプログラミング Twitterクライアントを作ってみよう」などが参考になる。コード中に括弧が少ないと落ち着かない、という人は試して見ては。
まるかっこかくかっここっかこっか (スコア:1)
ストーリーにあるリンクとか全く読まずに印象だけ
"()" と "[]" がすごい勢いで混ざっていそうだ。
がるぽっ! (スコア:0, すばらしい洞察)
Re: (スコア:0)
Nu言語は伊達じゃない!
#死亡フラグ
Re: (スコア:0)
オニイチャーン
Lispと言うよりRubyでは (スコア:0)
thenとelseって、何なのさ。それを使うことで可読性が増すかもしれないけど、わざわざ括弧で囲う必要はないし、括弧で囲うなら冗長なだけ。
Re: (スコア:0)
君が ruby しか知らないことは良くわかった。
Re: (スコア:0)
元ACだが、俺が最近使っているのは、SchemeとC++。以前にObjective-Cで遊んだこともある。でも、Rubyは知らない。
ただ、リンク先を読むと、セマンティクスはRuby寄りとあるし、文字列の操作も気持ち悪い(見慣れていない)ので、Rubyが元なんだなと思いました。それで、そのthenとかelseとかもRuby由来かと思ったんだけど、違うの?
Schemeのifは
だけど、thenとelseを使いたいのなら、
で良い
Re: (スコア:0)
thenとelseが関数で実装されてんのかな。んなばかな。
Re: (スコア:0)
式の途中にキーワードを書くのは筋が悪い。
Common Lisp派ならまだしも、Scheme派でこれはちょっとねえ。
Re: (スコア:0)
実際はどうなのか知らないが、
ならば、
も簡単に実装可能なのでは?
だと、
も
Re: (スコア:0)
括弧とキーワードの両方を使う理由が分からんだけですよ。
Re: (スコア:0)
ますます筋が悪い
Re: (スコア:0)
では、
をどうするの?
キーワードなしには実装できないでしょ。
のほうがすっきり。
とかも同じ理屈で実装できるのでは?
Re: (スコア:0)
<condition>が真のときにどのような値を返すかをお考えください。手続き型の言語とは違い、何らかの値を返さないといけないわけですから、キーワードの代わりに何らかの値を書けばいいのです。
キーワードを使うか、括弧を使うかは宗教の問題。私は、省けるキーワードは省きたいし、余計な記号も使いたくないので、Schemeが好きですが、キーワードや多種多様の記号を多用する言語を批判するつもりはありません。宗教ですから。
ただ、キーワードや多種多様の記号を使うのは、Schemeのように括弧だらけになるのを防ぐには良い手立てなのに、そこでまた、括弧をつけるというのが意味不明なのです。
Re: (スコア:0)
式の途中にキーワードを入れるのはLispっぽくないんだよ
だから筋が悪いと何度も言ってるんだ
Re: (スコア:0)
> <condition>が真のときにどのような値を返すかをお考えください。
>手続き型の言語とは違い、何らかの値を返さないといけないわけですから、
>キーワードの代わりに何らかの値を書けばいいのです。
意味不明。
これらをどうやって区別するかの問題だよ。なんの話をしているの?
「何らかの値」って何?どこに書くの?
Re: (スコア:0)
だいたい、
(if condition alternate)
なんていらんだろう。
(if (not condition) (alternate))
で書ける。
Re: (スコア:0)
それを言うなら、
も要らない。
おまえとはいっしょにコード書きたくない。コードメンテナンスとか、コード可読性とか考えてないよな。
IF文は、
しか使えないBASICを思い出すよ :-p
Re: (スコア:0)
が使えないとヤダヤダ
Re: (スコア:0)
unless でいいような。
Re: (スコア:0)
>>キーワードの代わりに何らかの値を書けばいいのです。
>意味不明。
Lisper 的には意味不明でもない。
ALGOL的な if の条件式じゃなくてcond の条件節みたいなものを想定してるんじゃないかな。
こうすれば、a-cond-func 関数の呼出し結果が真値であれば、そのままその値が cond の返り値になる。
Re: (スコア:0)
ifで評価するのはbooleanなんだから、tだろうがthenだろうが大差ない。
読みやすさから言えば、elseがあるなら、thenのほうが分かりやすいんじゃないのか?
ということ。そこに「なんらかの値」なんて入る余地はないと思うのだが。
まあ読んでからにしてくれ!
http://programming.nu/operators#controlflow
ついでに言うと、untilもあるし。
みんな、読まずに勝手な想像だけで話していることがよく分かったよ。
Re: (スコア:0)
cond式でいいじゃんかー
Re: (スコア:0)
開発者のサイトのリファレンスを見ると、thenは必ずしも必要ではないらしい。Schemeのように条件式の後に、1つもしくは2つの要素しか書けないというのではなく、上限は特に無くて、条件式が真のときはリストの先頭がelseで始まっていないもののみを評価、偽のときはelseで始まっているリストのみを評価するらしい。そして、thenはグルーピングのためにあるそうです。
面白い仕様ではありますが、条件式を評価した後に、リストの先頭がelseでないかどうかをチェックすると言うのは無駄が多いような。
ところで、thenの使用例の、
関係ないのですが (スコア:0)
シリーズとしてありましたけど、最近、インタビュー記事がありませんよね。
どうしたんでしょうね。
SourceForge の人気がなくなって、インタビューの価値がある開発者が
いらっしゃらなくなったのでしょうか?
Re: (スコア:0)
単に記事として人気が無いからじゃない?
PV稼げなきゃ意味ないわけだし。
# 面白い物を出してるのにコメントがほとんど付かなかったりして
# もう失礼じゃないかと思うレベルだったりw
ジョブス「だが断る」 (スコア:0)
よくわからんが、フラッシュ封じの為の例の禁則事項に引っかかるので
この言語はApple製品の開発には使えないんだよね・・・?
Re:ジョブス「だが断る」 (スコア:1)
たとえどんなルールを勝手にAppleがほざいていようと守ってやる義理なんてない。
Re:ジョブス「だが断る」 (スコア:1, 参考になる)
OS Xなら全然問題ないし、
そもそもFlashも動くよ。
Re: (スコア:0)
これでWebアプリを書けばいいんじゃね?
それなら例の禁則事項にも引っかからないし
AndroidでもPCでも動くしと良いことづくめ。
御大は関係ありませんよね? (スコア:0)
nue じゃなくて?
# 怒られるのでAC
Re:御大は関係ありませんよね? (スコア:1)
Re: (スコア:0)
Re: (スコア:0)
天刑執行御神体をそれであれするのだ
Nuは何を目指して開発されているの? (スコア:0)
Re:Nuは何を目指して開発されているの? (スコア:1, おもしろおかしい)
Re: (スコア:0)
指摘の通りで、単なる車輪の再発明だとおもう。しかもデザインが変。
MOPでもObjective-C相当のOO機能を実現できそうなものだ (スコア:0)
CLでCLOS使うんじゃダメなの?
Re: (スコア:0)
Re: (スコア:0)
そもそもObjective-CのオブジェクトシステムとFoundation(NSObject)のオブジェクトシステムは区別するべきだと思うんだけど、
Appleはわざと混同しているような気がする。
Re: (スコア:0)
Re: (スコア:0)
#今もわからない。
Re: (スコア:0)
Re: (スコア:0)
Lispの後に空白が入ってるのと、「が」が増えてるだけだよな。分からん。
まさか、と→とあるナントカカントカって脳内変換したってことじゃないよな?
Re: (スコア:0)
Re: (スコア:0)
「Lisp 『と』 (以下略) 『が』リリース」
に読めたって事かな?
#(以下略)部分に「融合させた」があるのにこの読解は無理がありすぎる気がするのでAC