レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
ヒッキープログラミングスレ
プログラミングの話題のスレ
質問・相談
初心者からプロまで
プログラミングに関することなら何でもOK
>NILとTにquoteを付けないとダメってどうなの
wikipediaの純lispのリンク先の純lispの論文がそうなってる↓
RECURSIVE FUNCTIONS OF SYMBOLIC EXPRESSIONS AND THEIR COMPUTATION BY MACHINE (Part I) (12-May-1998)
http://www-formal.stanford.edu/jmc/recursive.html
NILに付いてるのは見つからなかったけどTには付いてるね
>NILとTにquoteを付けないとダメってどうなの
まぁ言われてみて気づいたけど確かにちょっとおかしな部分があるね
緑字で展開される中にあるNILは大丈夫くて記述するときはquote必須というのはちょっと処理としておかしいね確かに
ちょっと直してくる
修正してきた
NILは通るようになった
Tについてはもう一度論文見直してくる
当初はTもNILもquoteなしで通るようにしてあったんだけど
論文見てたらquoteがついてたから付けるもんなのかなと該当部分をサクっと削除したんだけど
ちょっと混乱してきた
Common Lispの仕様見るとTもquoteいらないかんじか
そうだね
でもTはTじゃなくても(quote True)とかでも問題ないしどうでもいいと思う
TとNILをquoteなしで実行できるように戻してきた
>>679
いろいろとアドバイスや指摘ありがとうね
すごく助かるわ
俺飽きっぽすぎてワロタ
手直ししないで純lisp用のスキャナとトークナイザを作ってたわ
字句解析をスキャナとトークナイザに分断するとそれぞれはかなりシンプルな処理に収まるのな
ただ工程が増えるし2重走査してる感して可読性が高くなるかわり無駄処理が増えるイメージだ
それやり方間違ってる気がする
字句解析機とか構文解析機とか自動生成するのとかあるとか世の中すげえな
効率のいい方法は
トークンを一つ取得
そのトークンがアトムを表すならアトムにする
開き括弧ならそれに対応する閉じ括弧までをリストにする
という感じでやっていく
lex/yaccは覚えるの面倒そうだな
まあlispには無用の長物
うん、そのほうが効率よさそう
純lispなんかにかまけてないでさっさとmp3プレーヤーを作ればよかったと思えど
純lispが面白いからそっちのほうばかり気になってしまう
今使ってるmp3プレーヤが恐ろしいくらいに使い勝手が悪い(これも俺が作ったのだけど)
ああ、まいった
自作lispでファイル入出力出来るようになったし結構実用的に使えるようになってきた
あとはウィンドウ操作さえできれば完成だと思うけど正規表現トークンとか使えるようにしたいな
それはすげえな
色々できるもん作れるとかすげえよ
ゆくゆくはそのlispを公開とかするの?
ベクターとかはオワコンかもだけど
無料で公開とかならlinux系ならパッケージシステムとかに登録するのかな
たしかJAVAで作ってるんだっけか、ならマルチプラットフォームも余裕だな
そういやFreeBSDのportsとかってJava系のソースがあたったりするのだろうか、いや無いか、OpenJDKがあるからと言ってそれはないか
そういう理屈で言えばlinux系もパッケージシステムにJava製アプリは無いのかもな
アプリのソースコードのライセンスうんぬん以前に実行環境であるJavaVMのほうが問題になりそうだし
Java開発でアセンブラばりにバイトコードのやつを直書きしてる人っているのだろう
そういやJDK出力のバイトコードを見たことはあるけど
proguardとかの出力のバイトコードは見たことないなあ
HaxeもJavaのバイトコード出力できるんだっけか
パッケージ管理に組み込んでもらおうなんておこがましいことは思ってないよ
というか公開してもあまり意味無さそうだし
ああ、もしかして、lisp言語のコンパイラとかがjava製ってだけで出力は普通のバイナリだったりするのかな
知らないけどそうだと思う
それはすごいな・・・やっぱ俺とは次元が違うな・・・
っていうか2chのヒキプログラミングスレのほうも出来る人の書き込み多いし
その真逆でプログラミングしたことないって連中もちらほら
俺くらいの中途半端出来損ないが少ない印象だ・・・ム板なんかは特にそうだけど
学生の宿題質問スレくらいなら俺でも、と思いきや結構マジでムズい課題とか質問来てたりするしね・・・
コンパイラかあ、いつかは作ってみたくて、古いPCとか捨てずにとっておいてあるけど、動かしてないからもしかすると電子部品のいくつかサビてるかもしれんわ・・・・
何故古いPCかっていうと、最近のパソコンは命令セットが大杉だからな、一応IntelでIA-32の日本語マニュアルDLってきたけどさ
x86だけでなんか疲れそうというか、8086やMSXのマシン語の本とか持ってるけどMSXは持ってないからまぁ使えないんだけどね(笑)
そもそもWindows上で動かすとなるとWindowsのシステムの理解やexeファイルの構造とか知らんとどうにもならんし、複雑すぎや!
仮想マシンを作ればいいと思う
X WindowシステムはXプロトコルとかいうネット通信みたいな処理でウィンドウ実現してるとか
X Windowの入門本を持ってるのだがまぁその本糞古くて、同じような内容で分かりやすく説明してるネット上のサイトとかあって
色々とガッカリな上に、linux板とかでちょろちょろ質問してたら今時そんな根底ライブラリ使って開発しないとか指摘されたし
tk/tclとかQtとかgnomeとかが使ってるの何て言ったか忘れたけどそういうの使うのな
仮想マシンね、一応VirtualPCとVirtualBoxをインストールしてあるだけんど
やはりというか、ネットブックでやるにはちょっと重すぎるからね・・・EclipseもVS2010も糞重いし
一方VB6のIDEは軽いけど怪しいエラー続出だしね(ほんと怖い)
Open Watcom C++のIDEは色々と使い勝手悪いしね、コンパイラスイッチとか意味不明なの多いし何で英語なの・・・って
Open Watcom C++のコンパイラは日本語メッセージ出力できるのに、なぜって感じだわ・・
その仮想マシンじゃなくてJavaやsmalltakeみたいな系統のやつだよ
統合開発環境のポトペタでGUIが超楽ちんに作れるVB6のIDEは本当神懸ってるわ
これでLearning Editionじゃなければな・・・ワンランク上というか普通のProfessional Editionを買えばよかったよ本当・・・
ActiveX系の開発は全部できないわ、一部のActiveXコントロールは使えないわ
軽量系のVMか、そういやHaxeと一緒にNekoVMもインストールしたっけか
たぶん分かってると思うけど、軽量系って俺用語ね、VirtualBoxに比べりゃJavaVMなんて軽いもんよ・・・
俺はハンパ知識で、ハンパなうろ覚えでそれっぽい用語使ったりするけど、意味分かってないで使ってるの多いからあんま細かいことは気にしてないだろうと思うけど、気にしなくていいよ
間違って使ってそうなことあったらバンバン指摘してくれて構わないから(まぁ面倒だろうからいちいち指摘しなくていいよ)
>>715
どっちなんだよっていう
ああしろこうしろっていう人への押し付け的なレスはよくなかったね、すまんこ
一人でこれだけレスしてるの見ると笑いがこみ上げてきた
実は中に数人いるのかもしれないけど
俺ってばせっかちでレスを勘違いしてたくさいな
>>706 は仮想マシン上で作ればだと勘違いしてた
仮想マシンそのものを作るのか、そいつはさらに難しそうだな・・・
このスレ何人いるんだろうな
それは俺も分からんわ、俺のレスがどれかくらいは分かるが
簡素な作りの言語ならx86アセンブリより簡単だと思う
うーむ、自前環境上ので動かすためだけのコンパイラかあ・・・
情報処理試験のCOMET II あたりを拡張して作ればそんなに難しくは無いか・・・?いや高いわ
一応大学でCASL2とかVHDLとかアーキテクチャ系の授業も受けたは受けたが正直高難度ですわ
COMET IIの最低限仕様満たすだけのそれっぽい動作するだけのものなら作れるかもしらんが、おそらくそれはただのインタプリッタだろうしなあ・・・・
まぁそれをインタプリッタって言ったらJavaVMも.NET Frameworkも近いジャンルのものだろうけど
自作でコンパイラ作ってゆくゆくは簡素なレベルでいいのでOSとか作ってみたいと思ってはいるにはいるが
年齢的にもアレだし、できっこない理想はあきらめて、簡素な自作仮想マシンとかがいいのだろうか
OSにしろ仮想マシンにしろハードウェアに関する知識も必要だし、そこらへんはまだまだ全然分からんしなあ、遠いなあ・・・
今日の目標までは完成したから寝る!
ひとまずMBRあたりのブートレコードとかがやってることを調べるからやってみたいんだよね
MS-DOSの起動ディスクとかCOMMAND.COMとかあの小容量のフロッピーディスクで色々やってのけるのすげえと思うわ
古いPCなんかは全然少ない容量とかで動いてたわけだしファミコンやゲームボーイもすげえわ
>>727
おつかれ
おやすみ
COMMAND.COMなんかCUIだけどI/O出力やってのけるしx86の命令セットに気軽にI/O出来るもんがあるのか、メモリ上にアクセスを容易にするシステムコールでもあるのか
linuxなんかもインストールとかx86だったらディスプレイやキーボードやPCのメーカー問わずにCUIなら起動操作できる雰囲気があるし(実際そうかは知らんが)
日本語版のMS-DOSのCOMMAND.COMなんかちゃんと日本語表示できるしな、あれはすごい
おそらくパソコン本体にはアスキーコードに相当する半角英数くらいの画面出力機構くらい備えてそうだけど
日本語文字は画面出力用の日本語文字のビットマップの辞書セットとか必要だろうなあ
英語モードのCOMMAND.COMじゃ日本語文字が文字化けするし
linuxやfreebsdでも日本語文字が文字化けして表示できず色々と苦労したし
今気づいた、苦労って大事だなって
色々とあれこれ試して困難を乗り越えようと手を尽くすことによって
人は成長するんだな
なるほど、俺も成長してたんだな、ちゃんと
まあ、困難を乗り越えようとすることで成長するのだとしても
立ち向かってきた困難は俺の趣味の範囲だから立ち向かえたのであってだな
実社会に出て行こうというのは俺の趣味でも何でもないから立ち向かう勇気もモチベーションもねえんだよ!
今までヒキこもって逃げてきた俺が今更立ち向かえるわけがない、ギャップが大きすぎる、
逃げ始める前、そう幼稚園くらいのころあたりから人生やり直せるのなら、まっとうになれるかもしれんが
今さら幼稚園児か小学生レベルのコミュ力しかない30の俺が社会に出ていけるわけがない
そうさ、全ては逃げてきた自分の自業自得ってやつよ・・・こうしてプログラミングに没頭することで嫌なことを忘れる・・・・もうそれでいいんだ・・・
さて、今後の方針をどうするか
このまま純lisp関連を続けるか
MP3プレーヤーの制作のほうを急ぐか
あるいは、絶対的に改修が必要なPHPで作ったサイトに取り掛かるか
純lispはコンパイラを作ってみたいと思ってる俺にとっては近いジャンルの行為だからすごく面白いし楽しいけど
実生活上ではmp3プレーヤーのほうが性急に欲しい
だがPHP製のサイトのほうは利用者がそこそこいるし俺も使うし、レン鯖がPHPを5.5にバージョンアップさせる前にやらんとマズいし
ただmp3プレーヤーのほうは設計がまとまってないから遅々とした進行状況だし
PHPサイトのほうはPHP覚えたてのころの糞コード群を相手にせにゃならんから一番キツいし
嫌なことから逃げる癖に楽しさが追加された純lisp作成・・・一応のlispコード実行は出来るからevalもlispコードで再現してチューリング完全をテストしてみたいのはやまやまなんだが・・・
やってみたいといったらPHPに替わるもんになるか分からんがperlとかpythonとかrubyのcgiも設置できるとかだからそれもやってみたいんだよねえ・・・
pythonとrubyはインストーラ使わないとダメ臭いからwindowsに入れてないけど
まぁインストーラ使わないから汚染が無いかといえばそうでもないしな
Maru-Janとかいうネット麻雀のアプリを手動展開で入れたのに管理者権限も発動してないのにスタートメニューに入れられた色々仕込まれたしな・・・
ファイルやフォルダをパーミッションで管理できるunix系がマジうらやましいわ
とは言え手動でスクリプトを実行したらそれはたぶん自分の権限下だから自分のファイルは保証ないか・・・
まぁシステム汚染が少ないというだけでもunix系はうらやましい
まぁWindowsも上位エディションとかだとパーミッションの設定が出来るらしいが
NGEN v4 を止めて手動に切り替えるバッチを書いたった
このヒキ板でやたらとレス数が多いなこのスレ
2chのほうのヒキ板ののプログラミングスレでやたらHaxeが持て囃されてたけど
ム板のHaxeスレのほうにも火がついててワロタw
あのスレほとんど過疎ってたのにw
http://iup.2ch-library.com/i/i0936522-1371232731.png
やっと描画部分がとりあえず動くようになった
その部分のコード汚いけどもう動くからいいや
おおすげえな!
関係ないけどDebian使ってるのか、linuxはいくつかディストリ試してみたけどDebianのsqueezeが一番気に入ったわ
画像見て気になったのは座標指定はリストでないあたりかな
古いBASIC系だと LINE (X1, Y1) - (X2, Y2)みたいな指定が多いからさ
Java MEとかAppletとか作ったときのdrawLineとかだとそうなってないから使い勝手としてはやはり全部並べたほうがいいんだろうな
たしかHTML5のCanvasのlineToも全部同じに並べてたし古いBASIC系が異常ってことなんかな
自分が使ってたsqueezeはなぜかkernel failureが連発してあまりいい印象はなかったなあ
aptの依存関係が修復できないくらい壊れて使えなくなったこともあったし
引数に関してはリストしていしないのが普通だと思ってる
プチコンでもx1,y1,x2,y2みたいな指定方法だった
まぁそれがデファクトスタンダードってやつなんだろうな
古いBASIC系しかいじってない俺が時代遅れ・・・・
でもボタンとかラベルみたいなウィジットが使えないんだよなこれ
Panelに図形を描くことしかできない
たしかに座標のxとyを別々に管理したいときとかだと座標コンテナみたいなので渡すのはコード書くとき面倒そうだもんな
drawLine new Point(X1,Y1), new Point(X2,Y2)
とかなったら面倒すぎるもんな、逆だったら
drawLine Point1.X, Point1.Y, Point2.X, Point2.Y
って感じか、まぁこれならオーバーロードで2種類用意するほうが普通か
ボタンが使えないってJavaVMの仕様とか?
Swingはハローワールドしかやったことないから分からんから役に立てなくてスマン
いや、Panelの上に図形を描く機能しかつけてないんだよ
ボタンやその他の部品を全部ラップするのは面倒すぎる
なるほどね、”面倒さ”が最大の敵か、どの程度モチベーションを保てるかだな
Javaって任意のクラスのインスタンス作成とかやメソッド呼び出すようなシステムなかったっけ?
まぁlispコード上でJavaのクラスやメソッドを呼び出すってのもアレだが
あと設計もかな
これだけでもかなり手こずった
描く図形を全部キューに記録しておいてそれをpaintComponentが呼び出された時に全部描画するようにしないと動かなかったから
それを自前で実装したらかなりコードが汚くなってしまった
>>759
あまりJavaしらないんだよ
動くものは作れるけど詳しいことはさっぱり
俺もJavaはあんま詳しくないし、
大学時代にJavaApplet作る授業あったけど先生が容易したプリントのコード入力してコンパイルして実行するだけのものだったし
Java MEは携帯のアプリだけど自分で遊ぶ用にちょろっとゲームや、ツールや、あとはプログラミングみたいなアプリも作ったけど、これも参考サイトのをほぼマネして作ったようなもんだし・・・
Java詳しくないんなら>>759 のことは忘れて
あなたがJava詳しいと思ったから、>>759 はうるおぼえで確かな話じゃないけど、そういう感じのシステムあった気がしたから何でそれを実装しないのか(俺の今後の参考のために)理由が気になっただけだから
他の言語はあまり知らんけどVB6とかだと
CreateObjectとかで事前バインドしてないライブラリ使ったり
CallByNameで対象オブジェクトのメソッド呼んだり、プロパティ変更したりするからさ
似たような感じで実装とかできないのかなーって思っただけよ、実際に作ろうとしたらもしかするとすごく難しいのかもしらんけど
そうえいばjavaで作られたclojureにそういう機能があった気がしたから調べてみたらあったttp://ja.wikipedia.org/wiki/Clojure
これのGUI版のハローワールドでswing呼び出してるけどどうやってやるか全然わからん
>clojure
そのwikipediaをざっと見てみたけど
面倒そうな機能は丸ごとjavaに投げててワロタ
clojureはjavaのバイトコードにコンパイルされるのか
ならばバイトコードの仕様通りに引数とかスタックに詰んでクラス名とメソッド名をコールするだけかな
なるほど
まずはjavaのバイトコードにコンパイルする機能を付けないとダメなのか
これ俺だけじゃ思いつかなかったよ、貴重なアドバイスありがとう
メソッド呼び出しは分からんけど
コード上なら
m = MyClass.getClass().newInstance();
とかでクラスのインスタンスなら作れたと思うから
(java-class "MyClass")
とかでインスタンス作るくらいならできそうだけど
メソッドとかプロパティとかメンバアクセスやインターフェースとかどうするんだろうな
ああ、任意クラス取得は
Class.forName("MyClass").newInstance();
か
Class (Java Platform SE 6)
http://docs.oracle.com/javase/jp/6/api/java/lang/Class.html
なるほどね、Classクラスにインスタンス生成からメソッド取得まで一通りそろってるくさいね
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板