【普通のやつらの】 Arc Language 0 【上を行け】

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2008/02/04(月) 13:22:29
プログラミング言語Arc

あのPaul Grahamが長年考案しつつもベーパーウェアだったArcがとうとう発表された。
これを使えば今日から君もスーパーハッカーだ(*注: Arcは現在のところASCII以外の
文字を適切に扱えません)。

公式サイト
http://www.arclanguage.org/
インストール
http://www.arclanguage.org/install
チュートリアル
http://ycombinator.com/arc/tut.txt
非公式リファレンス
http://practical-scheme.net/wiliki/arcxref

* なぜArcはとりたててオブジェクト指向でないのか
http://practical-scheme.net/trans/noop-j.html
2008/03/01(土) 08:04:09
括弧が記号じゃないとエディタで対応とらせるのに不便よね。
インデントだけじゃなくて移動とか。
PostScriptみたいに[,]が実はオペレータってのも勘弁だが。
2008/03/01(土) 08:21:11
,はunquoteじゃないの?
2008/03/01(土) 10:20:11
>>137
inputが面倒という以外に、視覚的に鬱陶しいというのもあるのでは?
2008/03/01(土) 23:27:59
>>140
Lispの括弧と同じで慣れれば見えなくなるけどね
142デフォルトの名無しさん
垢版 |
2008/03/02(日) 14:13:23
レンタルサーバ上で Arc によってウェブアプリを書いている人いますか?


Arcで書かれたポールグレアムの News.YC がオープンソース化
http://d.hatena.ne.jp/higepon/20080225/1203913944
143デフォルトの名無しさん
垢版 |
2008/03/02(日) 14:15:13
Arcからの挑戦
http://practical-scheme.net/wiliki/wiliki.cgi?Arc%E3%81%8B%E3%82%89%E3%81%AE%E6%8C%91%E6%88%A6
144デフォルトの名無しさん
垢版 |
2008/03/02(日) 14:17:36
Arcからの挑戦
http://practical-scheme.net/wiliki/wiliki.cgi?Arc%E3%81%8B%E3%82%89%E3%81%AE%E6%8C%91%E6%88%A6

単純な問題を、挑戦として示すことにしよう。
そして、ポピュラーな言語での解答を集めて、その長さを比べてみるつもりだ。

次のようなプログラムを書け。
URL said (例えば http://localhost:port/said )は、入力フィールドひとつと、送信ボタンひとつのページを生成する。
送信ボタンが押されたら、2番めのページとして、"click here." と書かれたリンクひとつのページを生成する。
それがクリックされたら、3番めのページとして、"you said: ..." と書かれたページにいく。
ここで ... は、さっきの入力フィールドにユーザがタイプしたものだ。
ただし、3番めのページは、ユーザが実際にタイプしたものだけを表示すること。
つまり、入力フィールドの値を URL で渡してはいけない。そうしないと、最後のページの動作をURLで変えるようなことができてしまう。

単純だし、このようなテストに求められるように、これは例として不自然ではない。
Webアプリは、このようなことをいつもやっているのだ。あるいは、何か難解なライブラリ(Arcにあって他の言語にはないような)に頼るわけでもない。Webアプリを書くのに使われる言語なら当然もっているものだけでいい。

これが Arc の答えだ:

(defop said req
 (aform [w/link (pr "you said: " (arg _ "foo"))
      (pr "click here")]
 (input "foo")
 (submit)))

もし Arc になじみがなければ、私のいうことを信じてもらうほかないが、これはコード上のトリックで圧縮したわけではない。
これが Arc で書くには標準的な書きかたなのだ。
2008/03/02(日) 15:51:22
Arcで書かれたポールグレアムとlispで書かれたポールグレアムはどっちが強いんだろう
2008/03/02(日) 16:20:28
詠唱速度というのがあってだな
2008/03/02(日) 19:14:13
>>144
http://practical-scheme.net/wiliki/wiliki.cgi?cut-sea#H-1119bvv

>(define-page (said)
> (self-chain "self"
>  (form/cont/ (entry-lambda (:keyword say)
>      (a/cont/ (cut p/ "You say:" say) "click here"))
>   (readln/ say)
>   (submit/))))

>Arc: 23ノード:15の葉/字句 + 8内部ノード
>Kahua: 27ノード:17の葉/字句 + 10内部ノード
2008/03/06(木) 17:09:30
野良犬日記 2.1 ? Going to the Mutts
- Paul Graham のエッセイは翻訳が許可されている
http://tamo.tdiary.net/20080304.html#p01

> たとえば cond マクロ。こいつには Lisp 1 からこのかた余計な括弧がびっ
> しり付いてきて、それを誰も何ともしてこなかった。 if と cond を押しつ
> ぶしてひとつのオペレータにする Arc の技も、誰かがとっくに見つけてい
> たっておかしくなかったのだが、 間違いなくそんな周知の事実はない。こ
> んなことができると気づいたときは嬉しかったなあ。

これって何の話?誰か教えてプリーズ。
2008/03/06(木) 17:18:00
http://practical-scheme.net/wiliki/arcxref?if
2008/03/06(木) 18:00:43
ありがとう。
if の引数が偶数個のときは、else節が無いということかな。
2008/03/06(木) 20:42:11
この if ほんとに便利なのかなぁ
2008/03/06(木) 21:12:25
cond のほうが見やすく思えるのは、体に染みついてるからだけはないと思う
2008/03/06(木) 23:16:16
cond の括弧が「余計」だとは思わない。
要素の数を数えるより、括弧の対応だけ追うほうが楽だし。
ただ、 Arc の if のが書きやすいかもしれないとは思う。
2008/03/06(木) 23:20:28
インデントで見やすくすればいいだけ
2008/03/06(木) 23:31:54
ifもそうだけど、思ったよりwithも使い勝手悪い気がするんだよね。
letは良いんだけど。

>>154
インデントで見やすくする、っていう発想/行為自体が、括弧を減らすことで、
見やすさが向上してないってことじゃなかろうかww
まあ、もっと高尚な目的のために括弧を減らしたんだろうけどね。
2008/03/08(土) 02:20:13
ifとcond2つ要らないことが重要なり〜
2008/03/08(土) 02:43:38
そのりくつはおかしい
2008/03/08(土) 02:49:43
when や unless の立場はw
2008/03/08(土) 03:01:00
カッコが余分にないと暗黙のprognにしにくい。> if
2008/03/08(土) 03:31:47
condだけでもいいよ
2008/03/08(土) 03:33:58
どれか一つだけ残すなら cond だな
2008/03/08(土) 04:13:23
ところでprognってなんて読むの?
俺は心の中では「ぷろぐなぁー」。人前では発音したことない。l
2008/03/08(土) 08:40:29
おれの心の中では「プログン」だなぁ
2008/03/08(土) 09:02:03
俺は「プロオン」だな。「オ」のところは喉をすぼめて。
人前で読むなら「プログエヌ」だろうか。
2008/03/08(土) 11:30:46
俺も人前なら「プログ・エヌ」
人前でなければ発音しないw
2008/03/08(土) 12:09:27
同じような構文糖がゴチャゴチャあると余計わかりにくい。
2008/03/08(土) 12:22:24
実際ifのtrue節やfalse節でよくdoしてるよな。
letな局面も多くて、いつもしているわけじゃないけど。
あと、elseifが連なる時、どれが条件だか分かりにくいわ。
今のインデントルールだと全部同じ高さだから。

まあこんなのはどうでもいいところだけど。
2008/03/09(日) 05:07:57
prog1(プログワン)があるんだからプログエヌ
2008/03/09(日) 11:43:01
コンマ
170デフォルトの名無しさん
垢版 |
2008/03/11(火) 17:25:49
で、このアークってのは今までのLispの方言に比べて何か画期的な
機能とかあるの?
2008/03/11(火) 17:30:42
何か画期的な機能がある方言のほうが珍しいからなあ。無いんじゃないかなあ。
172デフォルトの名無しさん
垢版 |
2008/03/14(金) 14:41:10
文字列処理が変態的と聞いたが、使ってみた人、どうよ
2008/03/18(火) 12:42:00
俺LISP作るような人から見たら大した事してないよ
マクロでこんなん作りましたレベル
2008/03/18(火) 22:05:25
逆に画期的な方言が知りたい。
2008/03/18(火) 22:12:10
萩谷(昌己)さんが学生のとき作ったHyperlispなんて変態的で画期的だったな。
もはやLispではないかもしれんが。
2008/03/19(水) 00:34:08
どう画期的なのか、概略だけでも書いてくれると、
もうちょっとは盛り上がります罠。
2008/03/19(水) 00:43:37
ググれば論文出てくるよ。
ファースト・オーサーは佐藤さん。

二分木を基底にした数学的意味を持つLisp。
2008/03/19(水) 02:03:33
Arcは「シンボルの構造化」とか言えば画期的に聞こえないこともないと思う
2008/03/19(水) 21:51:23
>>175
今の感覚からみるとHyperってのが時代を感じるね。
2008/03/19(水) 22:43:41
HTML侮辱STOP! (AA略
2008/03/20(木) 00:14:10
時代を感じるってのは侮辱なのか?
日本語でおk
2008/03/20(木) 00:24:32
ハイパーカードのことも、ときどきは思い出してあげてください
2008/03/20(木) 00:46:12
HyperTalkもあったね。
2008/03/20(木) 10:33:55
HyperCardをArcで実装してくれ
2008/03/20(木) 22:12:58
じゃあ、俺は、ハイパーオリンピック

鉄の定規は、使用禁(ry
2008/03/20(木) 22:13:19
なつかしすぐるwwwww
2008/03/20(木) 23:49:46
あれのせいで全国的にコントローラが傷だらけになった罠w
2008/03/20(木) 23:52:01
HyperLibってあったな。
2008/03/20(木) 23:52:45
HyperText⇒HTML
2008/03/20(木) 23:56:16
>>189
>>180へ無限再帰
2008/03/20(木) 23:56:21
ハイパーターミナル
2008/03/20(木) 23:57:49
ハイパーリンク
2008/03/20(木) 23:58:34
CR ハイパー海物語INカリブ
2008/03/21(金) 09:01:28
>>188 super.lib じゃなくて?
2008/03/21(金) 22:39:21
>>194
ハイパーカードのスタックに特化した季刊誌があったような希ガス。
2008/04/06(日) 16:46:18
一ヶ月に一回位のペースで新バージョンがリリースされるのかと思ったら、ペース落ちてきたね。
2008/04/08(火) 00:01:02
正直、現状の肉でも魚でもないものじゃ更新ペースが速くても興味がわかない。
もう少しまとまった形になってから出してくれた方がいい。
2008/04/08(火) 03:57:31
>>197
どのあたりから肉とか魚になるのさw
2008/04/08(火) 23:20:13
Rubyになった時だろ。
2008/04/09(水) 00:20:32
Σ(´д` ).
2008/04/10(木) 23:24:33
相互再帰たらいまわし

(= Y* ([_ _]
[fn fs (fn (f) (fn xs (apply (apply f (map (apply (_ _) fs) fs)) xs)))]))

(= tarai
((fn (f g) ((Y* f g) f))
(fn (f g)
(fn (x y z)
(if (<= x y) y
(g (f (- x 1) y z)
(f (- y 1) z x)
(- z 1) x y))))
(fn (f g)
(fn (x y zx zy zz)
(if (<= x y) y
(let z (f zx zy zz)
(f x y z)))))))
202デフォルトの名無しさん
垢版 |
2008/04/22(火) 20:44:47
直接貼ると見づらいが、リンクするのも微妙だし、なんとかならんのか
2008/04/22(火) 22:14:44
>>201
どうなってるんだソレ
2008/04/22(火) 23:05:29
ふつうの定義。超遅い。竹内関数とも呼ばれる。
(= tarai
  (fn (x y z)
    (if (<= x y)
      y
      (tarai
        (tarai (- x 1) y z)
        (tarai (- y 1) z x)
        (tarai (- z 1) x y)))))

#これコピペすると&#160;が鬱陶しい

Y*は2変数ならこうなる
((Y* f g) h) => (h ((Y* f g) f) ((Y* f g) g))
2008/04/23(水) 20:04:10
>>201を(´д`)Editで観易くするテスト

(= Y* ([_ _]
   [fn fs (fn (f) (fn xs (apply (apply f (map (apply (_ _) fs) fs)) xs)))]))

(= tarai
  ((fn (f g) ((Y* f g) f))
   (fn (f g)
   (fn (x y z)
    (if (<= x y) y
     (g (f (- x 1) y z)
      (f (- y 1) z x)
       (- z 1) x y))))
   (fn (f g)
   (fn (x y zx zy zz)
    (if (<= x y) y
     (let z (f zx zy zz)
      (f x y z)))))))
206デフォルトの名無しさん
垢版 |
2008/05/03(土) 16:38:21
スターリスプみたいにさ、デフォルトで並列対応とかしてれば人気出るのに。
2008/05/03(土) 18:23:24
>>206
まだ表面的な部分しか公開されていないが実はそうなんジャマイカ?
2008/05/09(金) 00:02:32
並列どころか平行なんジャマイカJK。
2008/05/09(金) 06:50:39
ジャマイカとか言う前にちゃんと調べてから書け
2008/05/09(金) 07:02:55
調べてみた
http://ja.wikipedia.org/wiki/%E3%82%B8%E3%83%A3%E3%83%9E%E3%82%A4%E3%82%AB
2008/05/09(金) 20:32:07
>>210
そのリンクは『ジャマイカ』ジャマイカw
212デフォルトの名無しさん
垢版 |
2008/06/08(日) 01:13:48
またLispの方言できたの?
2008/06/08(日) 01:48:21
使用者ごとに23の方言があると言われているのがLisp
2008/06/08(日) 01:55:40
schemeとCLに比べて、何が凄いの?
2008/06/08(日) 03:04:40
作った人が凄い
2008/06/08(日) 03:59:29
アーク ザ ラングエッジ
2008/06/11(水) 13:40:39
…インテリジェントパイプ?違うか。
2008/10/17(金) 02:34:21
過疎ってるね。
219デフォルトの名無しさん
垢版 |
2008/11/26(水) 03:21:47
dylanとどっちが強いの?
2009/01/14(水) 12:06:47
既存のschemeのプログラムをそのまま走らせることはできるの?
slibとかそのままもってこれる?
221デフォルトの名無しさん
垢版 |
2009/05/18(月) 20:31:12
誰かが直接Arcのインタプリタを実装してくれないかな....
2009/05/18(月) 20:32:14
ひさしぶりだね。

俺実装しようかな。
2009/05/18(月) 21:43:49
>>222
頼むよ、このままじゃPlan9みたいに
第三のプログラムが作成されない現状のままになるから。
Common Lispはでかい割に必要な機能がないという異常事態だし。
2009/05/19(火) 16:47:30
仕様がほぼ決まったら作り始めるよ。
2009/05/19(火) 16:50:11
Cでサクッと
2009/05/19(火) 18:32:09
>>225
そんなにさくっとLispインタプリタがかけるようになるのは
どういう練習をしたらいいんだ?
どういう練習をしたら良いのかさっぱりわからん、
Cのプロフェッショナルになる必要が有るのだろうか?
2009/05/19(火) 18:40:20
>>226
さくっとかけないの?馬鹿なの?
2009/05/19(火) 19:20:16
>>227
さくっとかけないよ.
だよ、Listを読み込む方法がわからないよ。
(から)までなの?
`(バッククオート)の処理の方法が思いつかないよ
2009/05/19(火) 19:25:35
指輪物語のゴクリみたいなしゃべり方になったwwww
2009/05/19(火) 19:34:08
>>228
調べろよ。
OpensoruceのLispの処理系なんていくらでもあるだろ。

それに、Lispの処理系を作ったことがないとか、プログラマーとして如何なものかと思う。
2009/05/19(火) 22:03:50
> それに、Lispの処理系を作ったことがないとか、プログラマーとして如何なものかと思う。

さすがにそれはどうか

いや作ったことあるけどさ
2009/05/19(火) 22:11:47
>>231
つか、オレオレ言語の一つもって意味なんじゃね?
2009/05/20(水) 13:47:37
>>231
作っただろ、プログラマーなら
どことなくLispに惹かれて
なんとなく書いちゃうもんなんだよ。
2009/06/18(木) 08:03:11
作るのは別にいいけど人に使わせようと出してくんなよ
2009/08/09(日) 03:16:45
3.1 きたね
最新のMzScheme対応
2009/12/03(木) 20:49:25
どうよ、最近
クリスマスの予定は決まったか??
2010/01/11(月) 23:30:12
言語仕様書みたいなのって無いの?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況