TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
データ構造,アルゴリズム,デザインパターン総合スレ 3
VBで作られた有名なアプリって何?
2 part forth
VisualBasic6.0 対 VisualBasic .NET 2003
ECMAScript デス 4
シェルスクリプト総合 その31
VB.NET質問スレ(Part43)
【マウスだけで】Scratch【プログラミング】その1
TopCoder
Java入門・初心者質問スレ Part.8

今までに見たソースコードで一番感動したのは deux


1 :2010/01/12 〜 最終レス :2017/03/10
やっぱりこれです
while(*src++ = *dst++) ;
・ポインタの型によってインクリメントの適量を判断して加算してくれる点
・行末の ;
・終了判定
無駄も過剰もなくって感じで好きです
前スレ
http://pc12.2ch.sc/test/read.cgi/tech/1037458703/

2 :
srcとdstが逆なので0点

3 :
演算子のオーバーロードでちゃんと
srcからdstに代入されるようになっているから

4 :
>>1
要するに stos[b/w/d] だろ

5 :
>>3
ほんとC++は何でもありだな

6 :
過保護ってやつか

7 :
>>3
左から右に代入に変更してあるってことか?アホじゃないのか?
それだったら -> を左から右への代入ってことにすればいいんじゃないのか?

8 :
こういうので感動できないのは、俺が年だからかなぁ。 こういう書き方出来ると分かっても、使わないなぁ。

9 :
昔は再帰の書き方で感動したこともあったけど
今は別にって感じだな
枯れちまって情熱がもうないのかもしれん

10 :
int main()
{
return main();
}

11 :
これ有名な技法でしょ。しかも代入方向間違ってるし。

12 :
>>8
Cは実質アセンブラなんだから
movem (a0)+, (a1)+
見たいな事は出来ないと困る

13 :
フラグが使えないのにアセンブラと言うのは否

14 :
それ、なんか理屈が変だよ。

15 :
ソースって訳じゃないんだけど
感動したものにこんなのがある
SQLで覆面算を解く
ttp://miko.org/~naruto/Artifact/MASKSQL.html

16 :
呼び出し元でバッファサイズと終了条件の設定を保証しないといけないから、
これだけだと危険なコードだよねぇ

17 :
値交換っててっきり一時変数が必要かと思ってたらそうでもなかったんだね
x = x + y;
y = x - y;
x = x - y;

18 :
そうですね
それでうまくいく範囲の値を使っている限りはね

19 :
>>12
アセンブラやってた人間から見たら当たり前だよな
Cで同じことが出来ると言われてもあっそうとしか

20 :
>>1
これってループを抜ける保証があるの?
一見ないように見えるんだけど。

21 :
>>17
http://codepad.org/72Hm2T8T
うまくいかないじゃん。

22 :
>>1
終了条件を満たした直後に2つのポインタがインクリメントされてしまうのが
無駄なような気がしていたあの頃が懐かしい

23 :
>>21
おいおい、doubleなのに%dとか素で言ってるのかw

24 :
>>23
ごめん。素で言っちゃったw

25 :
%eにしたらうまく出来てたwスマソw
http://codepad.org/pTLkz2cx

26 :
16桁くらい差をつけてようやく反例ができた
http://codepad.org/DMn3DjZT

27 :
>>26
まあ、桁あふれすれば当然そうなるわな
>>17の方法だと、有効桁数が1bit分減るってことだろ

28 :
xor を使った値交換は超有名かと思ってたけど、知らない人もいるのかね。
>>17 みたいな劣化版を今更発見されても・・・ねえ

29 :
XORが使えない環境もあるのだよ
SQLとか

30 :
xor使って中央値を求めるコードは昔見て感動した
こんな奴。
int median(int x,int y,int z){
    return max(x,y)^max(y,z)^max(z,x);
}

31 :
ADD  90H
DAA
ADC  40H
DAA
これ考えたやつの頭はどうかしてる。

32 :
a = max(x,y)
b = min(x,y)
z = a*a - b + 2 * y
という式において、x, y と zの関係を表にすると、以下のように
zが正方形を規則正しく埋めるような形に並ぶ。
 00 01 04 09
 03 02 05 10
 08 07 06 11
 15 14 13 12
用途:
x,yの上限が動的に増える2次元配列を、
素のvetorに無理矢理突っ込むのに使ったり…

33 :
>>28
誰が知らないと言ってるの?

34 :
値の交換なんて高々数値1個分のメモリがあればできるのにと思ってたけど、
ROM が数十キロバイトもあるのに RAM が数百バイトなんてマイコンも今時あるんだな。
そら有用だわ。

35 :
xorだと整数型にしか使えないのでは?

36 :
すまん、すでに頭がアセンブラオンリーになってた。w

37 :
Dim ac(10) As Class1
Public Sub Test()
Dim c As New Class1
Dim i As Integer
For i = 0 To 10
Set c = Nothing
Set ac(i) = c
Next i
End Sub

38 :
>>32
00 01 03 06 10
02 04 07 11
05 08 12
09 13
14
こう並べると条件分岐のない式になる。データの種類によってはこれも便利。

39 :
おっと、式を忘れていた。
z=(x+y)^2/2+(x+y)/2+y

40 :
>>1のコードの意味を教えてくれ。構造体のコピー?

41 :
違う。配列のコピー?よくわからんコードには解説もつけてくれるとありがたい。

42 :
>>40
ゼロターミネイティッドな文字列のコピー
または、偽と可換な番兵付きのコンテナのコピー

43 :
文字列のコピーじゃないかね
文字列の終端には\0があるからそれでループが終わる
K&Rとかに出てきそうな感じ
しかし、>>1って未定義じゃないんだろうか
初級C言語Q&Aの
二つの副作用完了点の間に、オブジェクトの値を2回以上変更している場合、
又は変更した後で新しい値を得ること以外の目的でそのオブジェクトをアク セスしている場合
詳しくないのでわからんけど

44 :
>>43
未定義になるのは、「同一の」オブジェクトの値を二回以上変更した場合な

45 :
把握した。
つまり、このコード自体に意味はないが
while((*src)++ = *dst++)
だったら未定義ということだな

46 :
>>45
把握してない。w

47 :
ここまで何もかも間違っているといっそすがすがしいなw

48 :
>>45
未定義じゃ困るだろ。
右辺値に代入するコードがエラーにならなかったら、みんなC/C++捨てるよ。

49 :
>>48
把握してない。w

50 :
ほっしゅ

51 :
馬鹿ばっか。w

52 :
>>1見てわからんとか、Cの初級者以下じゃないか。
ム板ってこんなに程度が低くなってたのか。

53 :
>>2
warosu

54 :
>>1
デバックしにくいダメコードだな

55 :
まさかの1年

56 :


57 :
だれか>>31教えてください。

58 :
どこかのスレでみたこれ。
/*
ここに処理
//*/
最初の/*を//*にすればどーたらこーたら

59 :
#if 0
#endif
なら感動した

60 :
>>58
これ確実なの?未定義っぽいけど…。

61 :
>>60
確実じゃないの?
場合によるけど。

/*例1
 /*コメントのネストはNG*/
//*/
/*例2
 //このコメントはネストしてもOK
//*/
/*例3
//*//この状態はNG
ようはコンパイラが/*を見つけたら*/がくるまでコメントと見なす機能と//のコメントを上手く使ってるという事で。

62 :
うっ

63 :
char main[]={0xC9};
関数=コードというのは分かっていたんだが、ここまでストレートに書けるモノなのかと衝撃を受けた。

64 :
何も起きない

65 :
/**/

66 :
test

67 :
(function(s, callback){
  var result = console.log(s);
  callback(result, function(err, result){
    if(err){
      throw err;
    }else{
      console.log(result);
    }
  });
})('Hello', function(err, callback){
  if(err){
    throw err;
  }else{
    callback(null, 'world');
  }
});

68 :
馬鹿には無理

69 :
#include <windows.h>
#define o(c) (c=='/'?63:(c=='+'?62:(c<'A'?c-'0'+52:(c>'Z'?c-'a'+26:(c-'A')))))
int main(int ac, char **av)
{
BYTE str[]="AAAAfzH8QRUEXWl0XVF0XX10QXUEf1X8AFwAXxXwGMekNYpIToHAR0qYAGaofyXEQX0AXUvMXVygXUNwQQnAf06YAAAAAAAA";
BYTE dmp[72];
for(int i=0;i<24;i++){
BYTE c[4];
for(int j=0;j<sizeof(c);j++) c[j]=o(str[i*sizeof(c)+j]);
dmp[i*3+0]=((c[0]<<2)&0x00fc)|((c[1]>>4)&0x03);
dmp[i*3+1]=((c[1]<<4)&0x00f0)|((c[2]>>2)&0x0f);
dmp[i*3+2]=((c[2]<<6)&0x00c0)|(c[3]&0x3f);
}
HWND hwnd=GetDesktopWindow();
HDC hdc=GetDC(hwnd);
HDC hmemdc=CreateCompatibleDC(hdc);
HBITMAP hbmp=CreateCompatibleBitmap(hdc,32,32);
HBITMAP holdbmp=(HBITMAP)SelectObject(hmemdc,hbmp);
for(int i=0;i<24;i++)for(int j=0;j<3;j++)for(int k=0;k<8;k++)
BitBlt(hdc,(j*8+k)*32,i*32,32,32,hmemdc,0,0,dmp[i*3+j]&(128>>k)?SRCCOPY:NOTSRCCOPY);
SelectObject(hmemdc,holdbmp);
DeleteDC(hmemdc);
ReleaseDC(hwnd,hdc);
DeleteObject(hbmp);
return 0;
}

70 :
eNptWNeS40aWfZ+v6NDEarqEmiUAgjBRakXAE44kDOE6+gHeew+t/n1R1T0asxsMEOTJkzevSXPz/jWrg3IKo0+/LlkdNsvw3+l
vf/nrn+BeZv4H0vZeUnmfgqaqonr8fMCvP300Hs9PL3+Zmyz85KNIGAVNGH2mHIP99Es4jK9ZPX4asj16/Q4NffDy+8fPg/wVB7
99+R384y1u+u9dhi/ga/YFfMt+hY4v4Av88nuQev2nX/wvP5Gut4MEAJxOP719kMMv/tcMgL79/Xh9A6B/SgkOCcGv4VsAAC/vw
3y0B3//G/C3b18GIHgbgC/h2x/v9Hftvo/3ruPpfIwJ/NAv+Ip8e/sHJz84+a/IW340B1/zb1/exX4+jPma/YIA+bd32S//dZjz
dth8YGfgsOzz5+Ar+O3XX+GXn8EVBOPg5X/eIejbb78hH9D55U869J0OHXTkBx38TocP+ncJ8T/p8Hc6fNDR7/TgnR58PX/79PM
ncD0f3D/+eNe88rL6wwQveP3uyl+8+YeJ5X5Y8e3LT5G4jzUD61c5MBOSHTReHMuxCjaRVfpxcsnFuZtPUx1VtsZTE6SU51Qu5i
RpZO4HsCjWTOIAy43jWrPtbf4EEMyNIDGlCt2Y2+/h/VEvy2PBBYondo2uAWuPKY/VKbAoFAPOBHRN7rrUxghEl41O9Xf2Hoh5T
5ZVYA9NCiWBM54RYVBVGkxGkBnj0KMLymVVHext8UnKI2k2ZxfK6DBiVAUAqaiF1kj0GXKVeq483luXyp4oqw5/8y7pIXegoAxf
wzZx+NIrz1BtUYNi3JyhIwKLBGcW3Ug+BbicrYjeGemw7+moMeMcsOxCUYIsm5/syUYcLvAEdJ7FwUszJORaB2FNl6eWFNWCk1F
YOlQwyXkybxYNk/x8XcWtYG/w0AhXSWjX6Ik69mnLBoTzSmC+TW73CG9QbSCMLjf1TAMDsKa8ty5WYbkTzGJFgGKJSSBP43T3z0
UWn1lxm4AxfEqIpA/uDorBep2qzbUExu43Te5lLenOfgiDDsrlJuZU5Mg0t9vlHrh6O4S+TAroGKzcfXVXmb/SghJJi8+j62GOj
Qgh4zMNY7dzQfiWAQCP7Loe7tYn8frQjOzUZShcN1LUBWnQlYXSMZjUOClvHoairo55g5n7WA7KBA/Kspw26yqS7t3L7NgXh46s
aH13V1Q6jynQQmld03Vj3cWylscuDMIwIpXRyot7wY3VNiposd/62z0H1nHibgNTqFYAFEElWPi2XQrvudP4iCJm4rCBkj0ywS2
bFgLUK4H4GXVT2SEte/m+Yn10N51VftpEBFsQP2kXx/T6y31j76RiQjV94aV7Gy5dYN6tczILgQsOJ8sGmw4lTDIBqIsLypTrol
xYnWLPDl0fNgUH6qPeHLinO5QLWtZS3x8TycUtc+OFsI2nCprGdvazc38hc7cEvRznZvWM0eXlpnAcBCDJUgam+6wk3JYLuTOQy
rinnT2YjEZpniWq02Ow9Aw686RmbHLlEW4loTeZQ1ecdyy+YrRNbINrUFpc0wyQEqNNcyujcjaffm1S2F11sMLtggo9cckwDisK
WlPPOeNTZjC6KgWrL7Nsc1sVZcPUCrqxra2nGE2h25RcOT+eS5+bvo3S2sVlawOrkRJ4bFi5XXjPRb3kRBlR2o++I9p8ag9ql52
j3eUVWfEl1VmsB1RJhGdBVy31qzJ94tUAZlLrbIq49FNrc0XsigjnXl2xmEtnLmWuWsRu8RAjTqocSgWXMsc0No5lmQy6C43SHt
LN2HHJ9VxqDwvfp9zcRVrQfK2mT2Te7SBaye3d46+rG7qZKFkNkZPLzEeL1h6LhHbmbI0HHRgeXt+tiMwd+sCToZIOfZWV+jJno

71 :
R1ZxcUt131hoccoYhg+wru6lwobZPMkweCmbQxHqdPZRVznyqbUDZPVkwmHLn34t16qXpaslrD7cAsL20WlNAZ6M8tr2ERrh7Bg
uN/Ola9MWE1ELs7LmbNAAKoGE/iAHt7ICe64QZmOEYdyWgfoo4fa7oU/nQZo1C4MYQCef9n2yGnhXr+ekrB5SjogdW2+zxrRgHW
7QKUKYpC+Int3cWd+dcz+kdzDadd4UiQioGcfMe4xLgvYrKFDkNB4RN7eMFgD9HLj8uV0J9xNvi/X9DQ/U9+SZZTTQvWUyzchNE
z0Fgh6XdgmMrUPPTLOD6Dt9lGxytybIXIWdK/vWRk9ZijYO1HhF+ItG3Rw8M2LGMGFBeO9fmmPdQa72uqJPsZOvgmLsSYXBFjN5
6gjbE10YHlfT1wo6ECnSE9v9/GYEzBZV8ttOgNJiZVS0FgO8aCuwq3l8TtsziMSYkQa9ydGb+r16mKtvqY31GSsETRidHVw2cw3
VyBR9DlYdrqea2fISdLiTm0mlVaZgSbJZa2rKy3EVfDSFpJ2Td1+UDrOUAn5jj+I+HZE1cg6Y9yIqWQtHxignRJqV6mNwSBpy9c
KIkzsxCyL/Gr2FtVSoXFCU2/yeJXA8pZHdi4hEOiK3QnqkdEQ0GT8ZnnlVehaYAcX5sYNT+5yHeNR7zPak1VphR9A444Vw8V9C2
5YpUDR5foIHndZcwmWHQuZ5Fe4mkjdsog82+7PYs7jCbjUFws0MXn1FDxaeAmLY6lgxzmdUsC26LV8uvoU4AuBLdEaKULmoFs70
oCm3ZTrUOneYDkjrAWzRYUtIU3X4epjjy1aJ1Rx9ds5f7oaJPOGYCzbdm0JpevGgbHUPLVQKpYA5gaVeHmzcOHWk17aAxrsQExM
4FYgrecBvwbPCxob0nDC7iM3Q81Dw1wGOV/TFhfO9YM1NtrhzLVd7RZUuvOdhmyCm9vVj83oYu7NirrpaKbyyTpO7SDzAd8Xt1x
znZmjypQaoUrzagIbkFjq7hm6msm6ZjczINEC2usVuUPGlVMV3+lAB6aofg0Y3pJghKpm7YIZ2dgzQ7NXqucwxMSo0R48FN9QfF
x7CDc3GbFIBk4zxijTrOlhdb/kO6aZD5MY5rFUc/tKlMKxcckeQgWaaGVO/pydYulQ/OhiLCG95jXnjRfVUDmGnJ8UxmcA75gWV
IBG2gETRJw2QYDRQ2h9IkACJK0eug1uUxhDpV49ogKcli1dMYHOS1c/L550K5MeIfh9KPViMfuVXXqjpp0e6oICyEtAPJ/hUVdv
Zj0yGurUnJBLI9CrSXFOLBqZL8dRjvbRzHhbFQfmaFrwskZn86kgwoZPjGWpJ30TSDPZewewxyOdIoDjLLlELO0IZVwQ1qVuGbL
S1hSL/Z3RrkAJM31/d5EL43slF0cKc6w9treyFhDopXWuvRnLXjOhqY6z5kUGdWuTkzW5hWhatIPU0E/KEmCblUk26SYf6ZsluV
lLv5U5aZgVKQ3pg65Ejl77NoaHY2Mggd6LRQfyH/4GzWeSteTQBloJSaEneOvquzz3vS66dyKs9rj00+yZhHCAS/1wLRrFvOHG1
SopWK0Vm7foJn1EKeBep+J8fqb66sXTPKwG/tgDbIRA72wfy5DzLT3MHQ0IENe8G4UhsJ1BZfZ0N+ezWcDZLOImnsvNVZ/12A0G
ppdo+EnM2L0K1rSxLqspn8hbtgbxSCmZrpDTEIyUpQsjUIEqSmx4Vyaae+wVqn5mTpw6Bhc4Y6/NxUv8umCf2tlTThpitvDA9vt
zlnG54loV4E17JrG1F32+NVVCDHgaalQtvtMWuRMsrGrKtQBlOONucXXl+tYB/SWB/Es73Cn7iZagzhB2GxE2GJcJgEu+dHEwEA

72 :
FAjI0cMd6o8FYaZdkYE7pxdg1hLe3LpxGTZAST7vOZnYJiB4DrOOeG2bNPAUi4xhd3tjkZ07FLHIuo3nDf57O5XXTQhkmzlR+pV
8GBme3ZQj/FhqlHNzz+7QNvc1W6ygDJtOr0RDJsDJTyHlB7tjM9l1QhziPZTqLZTTNV/+GuXTLbqruec/R0wzocO3KzxjQlgiq4
nMAutnIRZuUxLnVP+BBrnE47GcSZXcxgbQN8l6tzoY1O44blk9saPd16Xlqydg+dSEPDZS1HsReRi5TJq7lUPAISKldSR1JASWn
vnjfkiLIengzR6Lm1hFzocfS85Hw/1ckqF97l9jjLhMzPWo7yd6VSRBhYRTri+UcCcKHv2rKxnLgjrw6EDMrmvsHL/sY84zgqAr
t6QJaQFxbFLaJb8QBgGcoJ769t6BsLIbcgNkGitOUFENzEhi6VmcqW+rnH947w6FynyL7fSaRFgSJc81MPgax1yrl6VZXoZJ05s
MAfinKWrnC0dvqNFsk4WEIrnZTWjVowp1dntnT+mskXxrzDpZHFt21YzQDDInxPvDbT+SKG8Agup5TbY5yzrNvjtKYoaeuw2Dwo
9bhJYc+TuBAOcBWCVcxcQ1+qznwibWcCJ57lQBGXjCQqs62qLoS1bFrthJGpRwktYc/5klua4pbEE32K3PNq1oIN2ewglzkWdeF
FshQZ0N73jFbLZ1PrreN0iZNtMLlwQsHKOGPp3i0XSNM4zBIu136awRDOcBldC9snjnRjxtWHqM2H9dVwwtHG8g2UPSEF2GPd5V
kEhEqr6MVyS1VsiVCWI50Vy9kFi/ZZREs2WKEIdlyapDpFyQ+nvmAS/0jNe8hSLqI8nPjIp3FeB5iubDjfpTyGvo/LpawMzNloL
RbLQgIjdUJvCy3x+qTFTDhmuimON38WE9UamAVkfIN4pFhkhS68ouPpWvFpGyqJkl8TqNWAKDVREM6j1eNLcCOXYb7p8KIJ0DGr
ElBnz4OcgCznY8lgdZx2h2SqQgQjRaOW4byLSwiK0RXU6NTCdTD2UYJK4yL5w5kH94BGEPGMn7ZBjgYUUaEjF528SSdsdbORJ8p
gdamjqH1O/GPeBq1rbBZ65y9V7PoPPKuF00LH+oJEP2pB5Y5hX88wdP729s8q1Dv4+g6+vlc6Xr4z/Sn+CmNnFPz2Nh236yT+KE
99+YDesvjzVAdN1fbRMHw+qK8/fxSv/pT08tJH49TXn6C3q3VjPqVLHX7ho5GJhmJsWuujhvb55e3K0J/SMPhooj+/s35gVVQdM
N1H3hjRx0DemPll9M4Jg4NCCYZCPj4dF6L2/5CobKy89p34ioLg66Hvv3RoyvC9z+cfwIselVEw3v38+P78fdTXd6kvb8cNgir/
xMDj80Paq3UVDPbG6vrL278Xxz5cAwAv/14Ow9CPetjhs3efZr9gKJB/+5NTfAFfqy8QjL8Vvx4PALxWv/32BfoP+s/Voen4yNa
o/IdG+S84ULxmrx9FsPj9OSKXfdf5PxT+Fxt0jabvD+fl7f81/Lt3Xt6Yo3GM/tH4L9B7AD64L2/aAXhD9CNsrx9x+RF08O2P/w
UBPgSo

73 :
spamかと思ったらbase64か

74 :
>>17
4年が経とうかという書き込みにレス。
XOR 使う方法も同じだけど、大抵は素直にテンポラリ使った方がコード面もスピード面もいいんだよな。
コードが増えても RAM は1バイトたりとも使いたくない場合にのみ有効なワザだな。
ROM は数十KB 載ってるのに RAM は 256 バイトぐらいしかない組み込みとか。

75 :
ループ内でレジスタを全部使いきっちゃった場合に使えるのかも

76 :
それでもメモリに余裕があるならテンポラリ確保する方が良策だな。
いまどき組み込みでも値交換のテンポラリすら確保できないような状況は
なかなかないよな。
しかしすごいね、見てる人は見てるんだな。

77 :
専用ブラウザ使ってたらねぇ。
それはさて、メモリに余裕がなくてもレジスタがあるなら要らないノウハウだよ。
つーか、下手なコンパイラだと余計にメモリを喰いそうだ。

78 :
メモリを使うよりは速い

79 :
10年くらい昔、どっかのサイトでCを使って
「TRUEとFALSEを交互に返す関数」の作り方について解説があった
if文で実現する奴  :初心者プログラマー
not演算で実現する奴:並プログラマー
xor演算で実現する奴:上級プログラマー
当時学生だった俺はえらく感銘を受けたが
現在はxorで実現する奴を開発チームに入れると禍根を残す気がするのだ

80 :
10年後になると、「notだろうがxorだろうがandだろうが、たいした差は無いな」
と思うよ

81 :
>>57
またもやウン年前の書き込みにレス。
アキュムレータの下位4ビットをキャラクタコードに変換してる。
メリットはジャンプ命令を使わずに書けることかな。
Z80 なら、
CP  0AH
CCF
ADC  30H
DAA
とも書けるけど、>>31 の方が汎用性が高いな。

82 :
そういう意味じゃないだろ。くだらないトリックではなく、本来の意味に沿ってプログラムを書かないと、
メンテナンス不能につながっていく、ということを>>79はいいたいんだと思う。

83 :
スレッドセーフなのか気になる

84 :
>>79
xorで実現する奴:booleanの概念を持たない老害C(≠++)プログラマー

85 :
要件通りのコードを書くのが正解。その手のトリックはコンパイラを作る人が必要なテクニック。

86 :
すれ違い

87 :
>>84
if(hoge == TRUE)…というコード書いて問題になったことがあるんだな。正直に言ってみろ。

88 :
#include <stdio.h>
int main(int argc, char* argv[])
{
int x = 10000000;
int y = 1;
x = x ^ y;
y = x ^ y;
x = x ^ y;
printf("x=%d, y=%d\n", x, y);
return 0;
}
Output:
x=1, y=10000000

89 :
4bitあれば証明には十分

90 :
パズル的なコードで感動する人が多いのね。
個人的に目からウロコだったのはsuckless.orgのMakefile全般。
http://git.suckless.org/st/tree/Makefile?id=3c546ae73924804ddc6d29dc3ab2f12a93287009
GNUのツールは猫も杓子もautoconfで人間が読めないMakefileを吐き出すものだから、
Makefileは人間の書くもんじゃねえとかscons他モダーンなビルドシステムの方がいいとか思ってたんだが、
↑のを見てからむしろ他のビルドシステムが面倒に思えるようになってきた。

91 :
#define ZERO 1

GNUでよく見かける。

92 :
ワロタ

でも #ifdef で分けるのに使うマクロは 1 なんだよな

93 :
無名高階関数があればifやswitchなしで分岐作れるんだって感動した

Object subclass: #True.
! True class methodsFor: 'testing' !
ifTrue: aTrueBlock
ifFalse: aFalseBlock

^ aTrueBlock value.
!!

Object subclass: #False
! False class methodsFor: 'testing' !
ifTrue: aTrueBlock
ifFalse: aFalseBlock

^ aFalseBlock.
!!
| boolean |

boolean := True.
boolean := False.
boolean ifTrue: [ 1 ] ifFalse: [ 2 ].

94 :
valueが抜けてた。

Object subclass: #True.
! True class methodsFor: 'testing' !
ifTrue: aTrueBlock
ifFalse: aFalseBlock

^ aTrueBlock value.
!!

Object subclass: #False
! False class methodsFor: 'testing' !
ifTrue: aTrueBlock
ifFalse: aFalseBlock

^ aFalseBlock value.
!!
| boolean |

boolean := True.
boolean := False.
boolean ifTrue: [ 1 ] ifFalse: [ 2 ].

95 :
Cでも三項演算子で分岐できるやん
だが無名のブロック作れると喜んで複雑化するのは破滅の入り口
そこであえて踏みとどまって名前つきブロック/関数にすべき

96 :
>>95
わかってねーなー。
分岐や反復に専用構文が必要なくて、
言語機能が簡素になんのがいいんじゃん。
お陰で分岐だけじゃなく、C#なんかで使われる次世代の構文だって
言語機能の拡張なしで使えるんだぞ。

"以下usingを使ったexample.txtにvalueと書き込むC#の処理と同等の処理。"
'/tmp/example.txt' asFile withWriteStream:
[ :aStream |
aStream nextPutAll: 'value'.
].

97 :
三項演算子はリテラル以外禁止だと前の会社で言われた

98 :
勤怠管理システムで残業0
http://www.fsas.fujitsu.com/service/idlm/
定時で強制ログオフシャットダウン
省エネ効果抜群

99 :
awkだけど、最近ここで見た回答がすごいと思った。
2つのテーブルデータを合体させるとき、連想配列を使えば、
要素が同じか否か、という条件分岐を使わなくてもいいんだね。
たった1行で、しかもLinuxのjoinコマンドよりも融通が効くところがなおさらイイ。

How to merge two files using AWK?
http://stackoverflow.com/questions/5467690/how-to-merge-two-files-using-awk

$ awk 'FNR==NR{a[$1]=$2 FS $3;next}{ print $0, a[$1]}' file2 file1

100 :
>>97
printf( a ? "成功\n" : "失敗\n");

が書けることを地力で発見して感動して使いまくってたら
なんか微妙な顔されたことがある。


100〜のスレッドの続きを読む
くだすれDelphi(超初心者用)その58【Embarcadero】
アルゴリズム考えるのムズすぎワロタwwww
C#,C#の宿題片付けます。
静的型付け言語の潜在開発生産性は今の100倍 ×5
Win32API質問箱 Build126
【統計分析】機械学習・データマイニング25
HSP総合スレ【part 10】
オブジェクト指向ってクソかよPart5
シェルスクリプト総合 その30
Perlについての質問箱 64箱目
--------------------
花組スレ(本スレ) Part179
体重別スレッド 70kg〜89kg  part19
異世界転生に続く新たな題材が人気を集めつつあるらしい [857186437]
【元に】松屋の新作牛めし豚めしは不味い【戻せ】
「A列車で行こう」シリーズ113両目
【羊】昭和42年生まれの毒男集うスレ No.55【1967】
【神】田代Flashを讃えるスレ【神】
意外な球団に在籍してた有名選手 Part 3
【将棋】藤井聡太七段 今年度の勝ち星単独トップの29勝目 棋聖戦2次予選1回戦で阿部隆八段に勝つ
ポーカー
ジェンヌの代表作3
【BlackDesert】 黒い砂漠 占領戦スレ Part42
ストーリー制作・演出に関する注意スレ
シクロクロス競技スレprat6
ざっぴーのダイエットスレ Part.2
【テレビ朝日】ラストアイドル 152
【超戦w】ヴォレアス北海道4【来るなV1】
大卒の若者の50%が非正規の事実は伏せます日本学生支援機構【奨学金】
おまいらってスマホゲー何やってんの?
【ポジション】おじぎ乗り★2【ペダリング】
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼