したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |
レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。

ヒッキープログラミングスレ

1(-_-)さん:2013/02/26(火) 04:49:59 ID:GABg0f3o
プログラミングの話題のスレ

質問・相談
初心者からプロまで
プログラミングに関することなら何でもOK

781(-_-)さん:2013/06/15(土) 04:10:26 ID:???
>>778
すまん、時系列的には書いてない
red hat使った大学時代は10年以上前、squeeze使ったのは数年前だ(今もVirtual Boxにインストールはしてあるが)

782(-_-)さん:2013/06/15(土) 04:13:35 ID:???
天鳳とかネットサーフィンが主の俺にとってはLinuxやFreeBSDのデスクトップ環境は無用の長物だったがな(しかもインストールしたPCがポンコツの希少種すぎてアホ動作しかしなかったが)

783(-_-)さん:2013/06/15(土) 04:14:36 ID:???
Virtual BoxにインストールしたDebianとかFreeBSDとか入れてマジ感動したわ、ちゃんとしたデスクトップ環境が築けたからな・・・もうホントあのPCはポンコツすぎた

784(-_-)さん:2013/06/15(土) 04:17:41 ID:???
あのポンコツPC上では
Debianはまだよかった、lxdeのやつが入ったから(色々アプリがハードウェア起因のエラーでまくりだったが)
FreeBSDなんか最小構成のCUIのみの簡素なやつしかインストールできなかったからな、ちまちまX Window入れてWindow Manager入れて色々試して大変だったな
しかも結局日本語環境構築できたのがWindow Makerだけで、圧倒的知識不足だった・・・まぁ今も知識は増えてないが、まぁこちらもハードウェア起因のエラーでまくりで酷かった

785(-_-)さん:2013/06/15(土) 04:20:13 ID:???
それがどうだ、このしょぼネットブックではあるがVirtual Box上にDebianもFreeBSDもインストールしてみたら!普通にデスクトップ環境入るし普通にGNOMEも動くし何これすばら!
だったけど、まぁPCのスペック上仮想デスクトップとして普通に使うには無理があったがな

786(-_-)さん:2013/06/15(土) 04:21:18 ID:???
結局今はDebianをHTTPサーバーとしてだけ稼働させてるわ、俺がやってるサイトのテスト環境として・・・レン鯖がlinux鯖だしね

787(-_-)さん:2013/06/15(土) 04:22:40 ID:???
またどうでもいい自分語りに脱線してしまったw

788(-_-)さん:2013/06/15(土) 04:24:40 ID:???
>>751俺はliveCD以外のlinuxディストリは今は亡きPCとVirtual Box上とVirtual PC上でしかインストールしてないから一般的なDebianの具合とかはちょいと分からん

789(-_-)さん:2013/06/15(土) 04:29:05 ID:???
>>778

簡単にググってみたけど
Classクラスを使うのってリフレクションって言うらしいね

Javaリフレクションメモ(Hishidama's Java Reflection Memo)
http://www.ne.jp/asahi/hishidama/home/tech/java/reflection.html

このサイトちょいと分かりにくいけど、もうちょっとちゃんとググれば分かりやすいサイトとか出てきそう

790(-_-)さん:2013/06/15(土) 04:32:09 ID:???
Java リフレクション が簡単に / Chat&Messenger
http://sattontanabe.blog86.fc2.com/blog-entry-35.html

この人のフレームワークを借りるとかすれば簡単なのかな

791(-_-)さん:2013/06/15(土) 04:40:09 ID:???
lispで対応を考えるなら
(setq myclass (javaclass-newinstance "jp.hikky.unko.MyClass" x y))
(setq returnvalue (javaclass-invokemethod "hoge" a b c))
みたいな感じになるのかな?
問題は変数の型として新しくJavaのクラスのインスタンスへの参照型みたいなのが必要なのかなん
しかしそうなってくると>>747みたいなlisp版のwindow扱う関数とか描写関数とかとうまく折り合いが付かなそうだな

792(-_-)さん:2013/06/15(土) 04:46:46 ID:???
Java言語のClassクラスが持つちょっと不思議な性質について - 達人プログラマーを目指して
http://d.hatena.ne.jp/ryoasai/20110329/1301414299

そうかあ、Javaのクラスには <T> みたいな感じの対応する型を指定するみたいなシステムがあったなあそうなると
MyClass<Integer>(x,y)なら
(setq integerclass (javaclass-getclass "java.lang.Integer"))
(setq myclass (javaclass-newinstance "jp.hikky.unko.MyClass" (integerclass) x y))
こんな感じか、まぁここまでやるとlispコードでアプリを作るくらいなら最初から最後までjavaだけでアプリつくればいいジャんって話になっちまうか・・・

793(-_-)さん:2013/06/15(土) 04:48:28 ID:???
いやいやまて、この設計だと問題があるな
MyClass<MyClass<Integer>>みたいな糞みたいな宣言ができなくなるなあ・・・

794(-_-)さん:2013/06/15(土) 04:54:31 ID:???
あ、でもそのサイトだと<T>を使ったのはエラーになるかんじ?

795(-_-)さん:2013/06/15(土) 04:58:25 ID:???
仮にlisp側から呼び出すのを実装するとClass<Object> c = Class.forName("MyClass").newInstance();になるのか、lisp上で型名とか指定とか無意味か

796(-_-)さん:2013/06/15(土) 05:00:30 ID:???
間違えたObject<Object> c = Class.forName("MyClass").newInstance();だな、Classで受け取るなら Class<Object> c = Class.forName("MyClass");か

797(-_-)さん:2013/06/15(土) 05:02:32 ID:???
Javaは詳しくないから<T>これとか使い方分からんがClass<?> c = Class.forName("MyClass");なのかな?あとObject<Object>はエラーだっつうのw

798(-_-)さん:2013/06/15(土) 05:03:59 ID:???
まぁ一度Classクラスの変数に入れるのは手間だからObject c = Class.forName("MyClass").newInstance();といったところなのだろうか

799(-_-)さん:2013/06/15(土) 05:11:07 ID:???
まぁともかく俺のレベルじゃJavaのこの機能をlispでラッピングするのは無理だわ

800(-_-)さん:2013/06/15(土) 05:14:56 ID:???
javaのこの機能を俺が使うことは当面なさそうだし、純lispかmp3プレーヤーかphpサイトのほうにちゃっちゃととりかかるべきだな

801(-_-)さん:2013/06/15(土) 13:25:48 ID:???
なんか糞面倒だしただの劣化clojureになりそうだしこのリフレクションとかいうのは諦めようかな
この機能はゲームのAIで使えるみたいだからその時があれば覚えとこう
グラフィック機能についてはお遊び程度で満足したからあとはマウスと画像を使えるようにすればいいか

802(-_-)さん:2013/06/15(土) 15:10:06 ID:???
あああ、純lispに設計ミスがあったぽい・・・オオ・・・マイガ

803(-_-)さん:2013/06/15(土) 15:13:55 ID:???
んん、まて純lispの論文を見直したら、間違って無かった、アレ?あれ?よく分からんくなってきたぞ

804(-_-)さん:2013/06/15(土) 15:17:19 ID:???
うーむ、これ確実に”リスト”という区切りがあるのあ

805(-_-)さん:2013/06/15(土) 15:23:36 ID:???
lispを配列構造にまとめて収めようとするときリストの単位の区切りのマークが必要ってことか・・

806(-_-)さん:2013/06/15(土) 15:24:08 ID:???
そんなことないと思う

807(-_-)さん:2013/06/15(土) 15:26:03 ID:???
((A . B) C) と (A B C) じゃあこれって同じリストってこと?

808(-_-)さん:2013/06/15(土) 15:28:05 ID:???
もしリストの区切り情報なしに配列に収めるとすると
((A . B) C)も(A B C)も A B C NIL というデータ上表現は同じになって同じリストってことになるけど
論文のだとcar[((A . B) C)]=(A . B)ということだから情報リストの区切りが存在すると思うんだけど

809(-_-)さん:2013/06/15(土) 15:29:44 ID:???
>>807
{{A . B} C}と{A B C}にすればいいと思う

810(-_-)さん:2013/06/15(土) 15:30:41 ID:???
carはリストの先頭を
cdrはリストの2つ目以降を
得る関数にすればいいんじゃないかな

811(-_-)さん:2013/06/15(土) 15:34:38 ID:???
俺がやろうとしてることは単純な配列上にlispのコードを並べようという話なんだけどリストの区切り記号を入れないとダメかなあって
#define NIL 0
int list[100];
list[0] = 'A'; list[1] = 'B'; list[2] = 'C'; list[3] = NIL;

812(-_-)さん:2013/06/15(土) 15:37:30 ID:???
このlist[]に((A . B) C)を入れようとすると((A . B) C)は((A . B) . (C . NIL))だけどリストの区切りマークの概念がないと
list[0] = 'A'; list[1] = 'B'; list[2] = 'C'; list[3] = NIL; になって(A B C)と同じデータ構造になっちゃうから
もし((A . B) C)と(A B C)が違う構造のデータであるなら読み込めないかなあって

813(-_-)さん:2013/06/15(土) 15:40:13 ID:???
同様に((A . B) . C) と (A . (B . C)) のデータ構造が違うのならやはり配列に区切り文字を入れないといけないけど単純にドットのデータいれるだけだとこの2つは同じ
list[0] = 'A'; list[1] = '.'; list[2] = 'B'; list[3] = '.'; list[4] = 'C'; になっちゃうし・・・

814(-_-)さん:2013/06/15(土) 15:40:30 ID:???
((a . b) c)は(cons (cons a b) (cons c nil))で
(a b c)は(cons a (cons b (cons c nil)))だからなんかおかしい気がするが気のせい?
リストの最後がnilじゃない時とそうであるときの処理が大変なのかな
もしそうなら前に俺が抱えてた問題と同じみたい

815(-_-)さん:2013/06/15(土) 15:43:07 ID:???
((a . b) . c)をCライクな書き方をするなら
sublist[0] = 'A'; sublist[0] = 'B';
list[0] = sublist; list[1] = 'C';
になるはず

816(-_-)さん:2013/06/15(土) 15:43:35 ID:???
となるとリストの区切りとして括弧の情報が必要ってことなのか
list[0] = '('; list[1] = '('; list[2] = 'A'; list[3] = 'B'; list[4] = ')'; list[5] = '('; list[6] = 'C'; list[7] = NIL; list[8] = ')';
((A . B) C)はこんな感じか

817(-_-)さん:2013/06/15(土) 15:45:27 ID:???
>>814-815
詳しく説明ありがと
やはりその感じだとリストの区切りがあるんだね・・・

818(-_-)さん:2013/06/15(土) 15:47:09 ID:???
あとドットの扱いは(gensym)で作られたシンボルにして間違った位置ならエラーが出るようにしてる

819(-_-)さん:2013/06/15(土) 15:47:16 ID:???
配列じゃなくてリスト構造ってことか
struct list {
void *data;
list *next;
};
ってところか

820(-_-)さん:2013/06/15(土) 15:47:40 ID:???
>>819
Cで作るならそんな感じ

821(-_-)さん:2013/06/15(土) 15:48:24 ID:???
そうだなlispはリストプロセッサーなんだから当たり前だよな、リスト構造と配列をごっちゃに考えてて勘違いしてた、すまん

822(-_-)さん:2013/06/15(土) 15:50:31 ID:???
リスト構造と配列は全然違う構造のデータタイプなのに何で俺はごっちゃに考えて同じものだと勘違いしてたんだ・・・そのせいで余計な時間を費やしてしまった・・・orz

823(-_-)さん:2013/06/15(土) 15:52:23 ID:???
>>820
お手数をかけてしまってすまんかった、俺が1人勘違いして暴走してた・・・

824(-_-)さん:2013/06/15(土) 15:59:44 ID:???
というかCで作ろうとしてるのか?
メモリ破壊バグとの戦いになる予感
俺も費やした時間の9割がそんな感じで投げ出しちゃった

825(-_-)さん:2013/06/15(土) 16:34:14 ID:???
Cはポインタとかallocとかよく分からんから使う気はないけんど

826(-_-)さん:2013/06/15(土) 16:38:37 ID:???
ついに燃え尽きた
もうこれ以上手を入れて機能拡張する気にもならないし実際に使う気にも鳴らなくなった
もう一ヶ月以上CやjavaでLisp実装に時間を使ってるんだよなあ
land of lispも積ん読だしこれからどうしよう

827(-_-)さん:2013/06/15(土) 16:44:13 ID:???
大きくなると1人で管理するのは大変そうだしね

828(-_-)さん:2013/06/15(土) 16:45:28 ID:???
まだ3000行くらいだしそれは大丈夫だけどある程度動いたら満足してしまう

829(-_-)さん:2013/06/15(土) 16:47:12 ID:???
こちとらその十分の一の300行くらいで頭がパンクしそうだよ・・・

830(-_-)さん:2013/06/15(土) 16:48:57 ID:???
ちゃんとしたエディタ使えばもう少し管理しやすくなるんだろうけどね・・・

831(-_-)さん:2013/06/15(土) 16:49:34 ID:???
ごちゃごちゃしてくるとどこで何を処理してこの変数は何だったかとかチンプンカンプンに

832(-_-)さん:2013/06/15(土) 16:51:46 ID:???
>ある程度動いたら満足してしまう

これは俺もあるわ
純lisp今作業とどこおってるし

833(-_-)さん:2013/06/15(土) 16:55:45 ID:???
純lispの論文のevalの実現方法見てるんだが英文のとこちゃんと読まないとちょっと分からない感じだし
labelやlambdaとかかなり複雑怪奇に再現してるぽいし、

834(-_-)さん:2013/06/15(土) 16:56:34 ID:???
引数と本体をリストにして保存すればいけると思う

835(-_-)さん:2013/06/15(土) 17:29:59 ID:???
おそらくそうしてるんだろうけど、解読大変だわこの論文・・・英語がハードルすぎる
あと論文読んでたらeqをこの論文の仕様どおりに作って無かったことに気づいた>>578のは間違ってた
eqは引数にatomic symbolしかとれずリスト渡すとundefinedにしないといけないのに>>578としてたからNILになってたわ・・・

836(-_-)さん:2013/06/15(土) 18:20:11 ID:???
読んでいったら>>834の言う感じの処理があった本当すごいわ・・・

837(-_-)さん:2013/06/15(土) 18:24:03 ID:???
まじかよ当たってたのか

838(-_-)さん:2013/06/15(土) 19:04:26 ID:???
論文からevalまでのlispコード全部書いてみたけどエラー出た・・
エラー検出の機能がテキトーだからlispコードのどこミスったのか分からん・・・さてどうするか

839(-_-)さん:2013/06/15(土) 19:07:08 ID:???
そもそも記述ミスなのか論文の括弧抜けが多いしM式からS式起こすだけじゃダメぽいな・・・
括弧抜けを補足するにはちゃんと理論を理解しないと補足できない
ここかな?とテキトーに括弧を補完したのがたぶん原因かな・・・

840(-_-)さん:2013/06/15(土) 19:07:53 ID:???
今日はもうオシマイ、純lispはまた明日やるとするか

841(-_-)さん:2013/06/15(土) 19:11:46 ID:???
>>838
自分もその問題に今悩まされてる
エラー時にどの行が間違えてるかも教えてくれればいいけどどうやってればいいんだろうな

842(-_-)さん:2013/06/15(土) 21:34:17 ID:???
難しい問題だな・・

843(-_-)さん:2013/06/15(土) 21:45:10 ID:???
もうpythonでlispのコードをpythonのバイトコードに生成してそれを実行しようと考えてみたけどそのほうが遥かに難しいな

844(-_-)さん:2013/06/15(土) 22:07:53 ID:???
それはそれでムズかしそうだな

845(-_-)さん:2013/06/15(土) 22:20:23 ID:???
俺はpythonは全く知らんからコードすら読めない
たしか括弧の代わりにタブインデントで何ちゃらの範囲を決める言語だっけか

846(-_-)さん:2013/06/15(土) 22:23:25 ID:???
そういやCのmakefileも処理部分はタブインデントしないといけないって2年くらい前に知ったわ
それ以前は毎度コマンドラインからコンパイラを呼び出してたけど
makeコマンドの使い方覚えてコンパイルがだいぶ楽になったなあ
なつかしい

847(-_-)さん:2013/06/15(土) 22:25:02 ID:???
それにしても「何ちゃら」が思い出せない、もう歳だなあ・・・物覚え悪いし物忘れ酷いし

848(-_-)さん:2013/06/15(土) 22:25:58 ID:???
ブロックじゃないかな

849(-_-)さん:2013/06/15(土) 22:26:25 ID:???
おお、そうだブロックだ、ブロック構造

850(-_-)さん:2013/06/15(土) 22:28:06 ID:???
ブロック構造なんてたいていのプログラミングに存在する概念だのにすごいド忘れだわ、hahaha・・・

851(-_-)さん:2013/06/15(土) 22:29:03 ID:???
そんな用語知らなくてもプログラム組めるからね

852(-_-)さん:2013/06/15(土) 22:30:52 ID:???
組むだけならね・・・入門書とか資料とかに書かれてて「何だっけこれ?」とかなるのは調べる時間が増えてデメリットはそれなりにあるよ・・・

853(-_-)さん:2013/06/15(土) 22:32:37 ID:???
ブロックをググってwikipeida見たらjavascriptにはブロック構造のスコープが無いってことを今初めて知ったわw
javascriptを初めて使ったのは大学時代の頃合いか10年前後前になるぞ・・・

ブロック (プログラミング) - Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)

854(-_-)さん:2013/06/15(土) 22:50:35 ID:???
ついでにリフレクションも調べた(wikipediaで(藁))

リフレクション (情報工学) - Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%95%E3%83%AC%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3_(%E6%83%85%E5%A0%B1%E5%B7%A5%E5%AD%A6)

結構いろんな言語が持ってるだね・・知らんかったわ

855(-_-)さん:2013/06/15(土) 22:53:31 ID:???
perl,ruby,javascriptがあってpythonないとかハブられてるな

856(-_-)さん:2013/06/15(土) 23:17:21 ID:???
こうなったらYOUが書いChinaよ!

857(-_-)さん:2013/06/15(土) 23:38:09 ID:???
(´・д・`)ヤダ

858(-_-)さん:2013/06/16(日) 00:41:21 ID:???
そうか・・・まぁ面倒だもんね

859(-_-)さん:2013/06/16(日) 01:44:03 ID:???
ワロタ、またやっちまったw
間違って無限ループコード書いてブラウザ固まったww

860(-_-)さん:2013/06/16(日) 02:39:19 ID:???
それはブラウザが悪いな
無限ループを検出したら警告するべき

861(-_-)さん:2013/06/16(日) 02:55:51 ID:???
そういうもんなのか

862(-_-)さん:2013/06/16(日) 13:07:08 ID:???
javaのスタック浅いから自前で実装したいけどどうやってやるんだろう

863(-_-)さん:2013/06/16(日) 17:23:13 ID:???
スタックってこれ?

Stack (Java Platform SE 6)
http://docs.oracle.com/javase/jp/6/api/java/util/Stack.html

864(-_-)さん:2013/06/16(日) 17:25:05 ID:???
そのスタックの説明に↓これ使えって書いてあるけどこっちのほうの話?

ArrayDeque (Java Platform SE 6)
http://docs.oracle.com/javase/jp/6/api/java/util/ArrayDeque.html

865(-_-)さん:2013/06/16(日) 17:32:00 ID:???
javascriptでクラス(オブジェクト?)の設計誤ったわw
フィールドとかはJavaみたいなゲッターセッターのほうが無難だわな
とくにjavascriptの場合だと未定義の名前でもアクセスできるから()つけない呼び出しは危ないわ
名前の書き間違えのリスクを考えてなかった、書き直しだあ・・・

866(-_-)さん:2013/06/16(日) 17:43:44 ID:???
それだけどjavaでlisp処理系の実装で再起を深くするとネイティブスタックだと
すぐスタックオーバーフロー出るから自前でスタック実装できればいいなと思った

867(-_-)さん:2013/06/16(日) 17:55:02 ID:???
ttp://iup.2ch-library.com/i/i0937667-1371372856.png
とりあえず描画関数を増やしてみた
これでボタンとか作ればいいのか

868(-_-)さん:2013/06/16(日) 19:30:44 ID:???
おお!本格的ですげえな!

869(-_-)さん:2013/06/17(月) 16:56:11 ID:???
http://www.geocities.jp/takeiteasy_idontthinkso/mysoft/js_minimal_lisp/index.html
純LISPをある程度整理した、疲れた・・・

870(-_-)さん:2013/06/17(月) 17:43:13 ID:???
そろそろ純lispの枠を超えてlispをjavascriptにパースするプログラムとかどうなの
自分が欲しいだけだけど

871(-_-)さん:2013/06/17(月) 17:49:49 ID:???
パーズっていう言い方は間違えてるか

872(-_-)さん:2013/06/17(月) 18:40:08 ID:???
>lispをjavascriptにパースするプログラム

これってつまりどういうことをするプログラムなの?

873(-_-)さん:2013/06/17(月) 19:04:37 ID:???
javascriptを書かなくてもlispで書いたものをjavascriptに変換すれば和田英一さんでもハッピーになれるんじゃないかなという感じ

874(-_-)さん:2013/06/17(月) 20:04:00 ID:???
ライフゲームが動いて感無量
ttp://uploader.sakura.ne.jp/src/up123194.png

875(-_-)さん:2013/06/17(月) 20:15:37 ID:???
すげえ、マジですげえな

876(-_-)さん:2013/06/17(月) 20:16:10 ID:???
>>873
つまりhaxeみたいなトランスレータってこと?

877(-_-)さん:2013/06/17(月) 20:23:05 ID:???
こゆのとは違うの?

凄い。JavaScript上で動作するLisp「Javathcript」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ
http://www.moongift.jp/2012/08/20120815-3/

878(-_-)さん:2013/06/17(月) 20:30:18 ID:???
>>877
javascriptに変換しなくても出来るのかすごいな

俺が想像してたのはhaxeだけどこれなら変換する必要ないな

879(-_-)さん:2013/06/17(月) 22:53:10 ID:???
ライフゲームといえば何年か前にヒキ板のプログラミングスレでアップしたことがあったなあ・・・

880(-_-)さん:2013/06/17(月) 22:54:28 ID:???
ファイル探してみたら2008年の10月だった・・・もう5年も前だったのか・・・




掲示板管理者へ連絡 無料レンタル掲示板