X



あったら絶対便利なプログラミング機能
0001デフォルトの名無しさん
垢版 |
2021/11/26(金) 00:18:23.79ID:E6uR3cph
文字列から変数の中身を参照する
int v = 1;
print(variable(”v”));
→「1」が出力

文字列で関数を実行
variable(”print”)(”hoge”);
→「hoge」


文字列で値をセット
setVariable(”v”, 2);
print(v);
→「2」


変数の名前を文字列化するプロパティ
print(v.name);
→「v」

オブジェクトのプロパティを文字列で取れるメソッド
Dog d = new Dog();
d.prop(”age”) = 5;
print(d.prop(”age”));
→「5」


イコールの左辺を参照する特殊変数「left」(超便利)
v = left + 1;
print(v);
→「3」
0002デフォルトの名無しさん
垢版 |
2021/11/26(金) 00:41:14.53ID:o6j9/HV6
まさにlispがその機能を持っているが
プログラムが複雑になりすぎるので
あまりはやらなかった
0003デフォルトの名無しさん
垢版 |
2021/11/26(金) 01:16:23.49ID:lmSY4XB3
既存のプログラミング言語でだいたいあるのに
ちゃんと調べずにスレ立てちゃう>>1はゴミ
0006デフォルトの名無しさん
垢版 |
2021/11/26(金) 06:54:19.95ID:MKajAbcL
int v = 1;
print(variable(”v”));
→「1」が出力


↑?
print(v);でいいじゃん?
めんどくさくなってるよw
0008デフォルトの名無しさん
垢版 |
2021/11/26(金) 12:13:44.22ID:8zV9VfmZ
>>6
変数名は値に化けてしまうから
プログラムで加工することが出来ない

一方文字列はsplitや結合 replaceなどを行えるし
値に化けずに引数や戻り値としてほかの処理と連携できる

>>1 の技術は単体で効果を発揮するものではなく
全て何行も同じようかコードを書かなければならない
時に記述量を減らすことを想定している

例えば100個のオブジェクトがあって
100個のプロパティを持ったものを全部処理しなきゃならないような
時に使う
0010デフォルトの名無しさん
垢版 |
2021/11/26(金) 15:56:31.17ID:1PQpeNGS
eval()とかで、出来そうだけど。。
0014デフォルトの名無しさん
垢版 |
2021/11/26(金) 19:54:40.23ID:OLQKN+EB
VisualStudioにはT4 テキストテンプレートというのがあるぞ
用途予測ではコレだな
0017デフォルトの名無しさん
垢版 |
2021/11/26(金) 22:29:34.92ID:J101Op7p
>>13
テーブル名も列名もめちゃくちゃ長いし列数も多い
し列同士の名前も見分けがつかないくらい似てるような
DB扱ってるのに継承が何になる

俺が欲しいのは大量の名前を文字列として処理する
技術なんだよ
オブジェクト指向もevalもキャッシュも知ったことか
俺の仕事が終わってくれればなんでもいいんだよ!
0018デフォルトの名無しさん
垢版 |
2021/11/27(土) 00:52:07.12ID:riEP2Tv6
コンパイル方式でもデバッグ情報として変数名関数名は持ち得るから
そのメタ情報でアクセスする枠組みを用意すれば済むとして
メリットは?
0021デフォルトの名無しさん
垢版 |
2021/11/27(土) 23:58:03.95ID:OxthjsF1
記述法、流儀の違いであって、あれでできる、これでできるとかいう話ではないだろ。
>>1はこうしたいんだよ。
コンパイルすれば同じなんだから。
0022デフォルトの名無しさん
垢版 |
2021/11/28(日) 00:10:48.53ID:bIKndJgq
でも
「あったら絶対便利なのになぜないんだろう」から
「これに気がついたの世界で俺だけ?俺って天才?」と考えるより前に
「他の人は別の機能で解決してるんじゃないか?」と考えたほうが速く楽になることが多いよ
0023デフォルトの名無しさん
垢版 |
2021/12/02(木) 11:57:43.66ID:QvgSOoWD
逆に辞書とか多次元配列とかオブジェクトない言語でプログラム書くときはこういうのしてたな
メモリのクリアとか諸々やたら面倒で今日の言語のありがたみを感じた
0024デフォルトの名無しさん
垢版 |
2021/12/03(金) 20:52:15.99ID:xM1Kf0e8
とはいえ魔法があるわけではなく収容テーブルを持つしかなく
文字列をハッシュ関数でインデックス化して衝突時処理後のインデックスの場所に収容しているだけね
0025デフォルトの名無しさん
垢版 |
2021/12/04(土) 21:01:33.78ID:S0DJO4wc
良スレ
0028デフォルトの名無しさん
垢版 |
2021/12/13(月) 23:47:03.98ID:6h2wVgpa
もう言語を統一すべきだろう
ノイマン型のシステム使ってる限りは必ず似たロジックになるんだから各言語のいいとこ取りをすればいい
0029デフォルトの名無しさん
垢版 |
2021/12/14(火) 00:00:04.31ID:wykR5077
変数や定数やクラスをフォーカスしたら予め作っておいたコメントが読めるようにして欲しい
そこにその役割やどう使ってるかを書く
0032デフォルトの名無しさん
垢版 |
2022/01/05(水) 16:31:11.81ID:QRViafcU
やってることを説明してくれる
int n ; ←int型変数の宣言
みたいに
予約語の変数宣言だけなら別にこんなことしなくていいのはわかるけど構造体やらクラスやらポインタやら出てくると初学者には大変
クラス〇〇のメンバ関数△△の戻り値(アドレス)をポインタ変数Pに代入
って言葉で説明されるとわかりやすいし文法を知らない未習得の言語だとしてもすぐに理解できる
0033デフォルトの名無しさん
垢版 |
2022/01/05(水) 21:52:09.69ID:CeYNovNa
その機能が必要になるレベルの人は
結局、intって何? 構造体って何?
って話しになって、解説しても理解してくれないことが多い

上級者でそのレベルのことが分からない人は
言語仕様を30分ぐらい読んでくれ
ということだからなあ
0035デフォルトの名無しさん
垢版 |
2022/01/09(日) 19:40:12.05ID:C8vy8rqb
>>34
大抵のものはライブラリにあるけど
数値計算向けではない言語ではないものもあるけど
レスを投稿する


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