2
Name:
Anonymous
2012-11-28 6:36
>>1 's dick's sqrt(ħG/c^3) long
4
Name:
Anonymous
2012-11-29 1:17
Weren't you excited by the adventures of
[b] [i] [o] Eva Lu Ator[/o] [/i] [/b] and friends?
>>2
>dick's sqrt(hG
His dick squirts mercury?
5
Name:
Anonymous
2012-11-29 1:52
I am reading the 3rd chapter(I skipped some exercises of the 2nd chapter, which I will hopefully go back to). Did you do all the exercises OP?
6
Name:
Anonymous
2012-11-29 6:03
>>4
Lem E. Tweakit was the best character.
7
Name:
Anonymous
2012-11-29 6:45
Alyssa P. Hacker is a cunt.
8
Name:
Anonymous
2012-11-29 7:27
I like diddling with my ben, if you know what I mean.
9
Name:
Anonymous
2012-11-29 8:37
I actually use Symta. Reads like pseudocode. Very readable.
viewport W H = Sel:ø = LC:ø = UIAct:ø = Ack:ø = A:ø /*anchor*/ = M:[0 0] /*mice x,y*/
= Keys:ø = Speed:2 = !FPS:0 = FPSC:[] = FPS0:time,c = o
clickSnd:<U = [[LId C] LT]:LC = T:time,c = {T-LT≥2 |v LId≤≥U.id
= AL:U.sounds.annoyed,len
= !C: {LId≥≤U.id = mod C+1 3+AL; 0} = !LC:[[U.id C] T]
= {U.act.type,<\producing> = \construction
;U.building |a U,hp100≤50 = \burning
;C≥2 =l \annoyed C-3
;√ = \selected}}>
clearClicks:<=!LC:[[ø 0] 0]>
init:<= !Sel:ø = !UIAct:ø = !A:ø = !Keys:[] = clearClicks,c>
w:<=W> h:<=H> screenToCell:<P=(P+Units,ThisPlayer.view)%32>
cur:<= [{A;M} M] | <[[AX AY] [BX BY]]
= X: min AX BX = Y: min AY BY = W: max AX BX = H: max AY BY
= l X Y W-X H-Y>>
centerAt:<P = move 32P-[W H]%2>
top:<=Units,ThisPlayer.view>
move:<P = TP:Units,ThisPlayer
= !TP.view: sature2D [32WM 32WM (WW-WM)*32-W (WH-WM)*32-H] P
= !TP.tile: TP.view%32 = !TP.size:l (W+31)%32 (H+31)%32
= aset ThisPlayer TP Units>
ack:<T U C:{ø} = {Ack = clearClicks,c = !Ack:ø = unitSay \ack U
= !UIBlink:l T Cycle+12 Cycle+24
= C |a spawnFx C%32 \cross_green D:C}>
lmbOrder:<Act = !Ack:ø:√ = S:Sel
= m Units,? S | e <U
= A:{UTs.(U.acts|fnd UTs.?,prettyName≥≤Act,prettyName); Act}
= D:Act.dst = ack D U = order (u A dst:D asz:Act.asz confirm:√) U>
= √>
rmbOrder:<XY = S:Sel
= T:XY,selPoint = C:XY,screenToCell,cell = m Units,? S | e <U
= As: k y U.acts | m UTs.? | s ?.nonRMB | sort by:?.rmbPrio cmp:?≥??
= !Ack:ø:√ = [T C] | <[T@Ts] = {A: T |a fnd (canAct U ? T) As = [A T]; r Ts}>
| <[A T] = I:T.id = !A.dst:I = order A U
= ack I U C:{T.tileId = XY-VO+Units,ThisPlayer.view-[16 16]}>>>
update:<= q (left ~1 0) (right 1 0) (up 0 ~1) (down 0 1) | m:[N@P] [Keys.N P]
| filter:[[y@_] P] P | f [0 0] `+` | ?*32+VP.top,c | VP.move
//= Keys.delete | <[y@XY] = rmXY M,screenToCell>
= !UIPopup:[] = {Sel,n = !UIAct:ø} = updUnits,c = k Units,?,selectable? !Sel = √>
drawUnit:<SO VO TN B G U
= [BId BT1 BT2]:UIBlink = Blink:{Cycle≤BT1; Cycle≥BT2 |a Cycle≤BT2+12}
= Id:U.id = Col:Tints.(U.color) = D:{dirN U.dir; 0} = UG:U.gfxes.TN,(U.frame),D
= [X Y]:U.disp+VO-SO+32U.size/2 = [SW SH]:U.selSize = RX:X-SW/2 = RY:Y-SH/2
= {{bfnd Id Sel; Blink |a Id≥≤BId} = G.rect U,unitUiColor RX RY SW SH
= drawBar [RX RY+SH SW 5] U,hp100 G
;U.building |a UIAct.type,<\build> = G.rect #F0F0F0 RX RY SW SH}
= B X-UG'w%2 Y-UG'h%2 UG P:Col FX:(D≥4 |a U.building,n)
= U.effects | filter:[E V:pos?] E |i|e:[E N] B RX+16N RY-16 EfxIcons.E>
drawShadow:<SO VO B U = UG:UTs.shadow.gfxes.summer,2,0
= [X Y]:U.disp+VO-SO+32U.size/2 = B X-UG'w%2 Y-UG'h%2+U.shadow UG>
updScreen:<VX VY G = VO:[VX VY] = B:G.blit = U:selectionAsUI,c = TN:Tileset.name
= TP:Units,ThisPlayer = Side:TP.side = SO:TP.view
= [IX IY]:VO+~(mod SO 32) = [CX CY]:SO%32
= CW: ceil (G'w-VX+31)/32 = CH: ceil (G'h+31)/32
= Vs:[] = EX:sature1D 0 WW CX+CW = EY:sature1D 0 WH CY+CH
= for (Y:CY PY:IY ; Y≤EY; !PY+32 !Y+1)
for (X:CX+Y*WW PX:IX EX:EX+Y*WW; X≤EX; !PX+32 !X+1)
(= C: aget X Cells = {V:C.content =l @!Vs @V} = B PX PY C.gfx)
= !VisibleUnits: filter Units,? Vs,uniq | sort by:[?.layer ?.disp,1]
= k ?.building VisibleUnits | e:U drawUnit SO VO TN B G U
= k ?.shadow VisibleUnits | e:U drawShadow SO VO B U
= s ?.building VisibleUnits | e:U drawUnit SO VO TN B G U
/*= for (Y:CY PY:IY ; Y≤EY; !PY+32 !Y+1)
for (X:CX+Y*WW PX:IX EX:EX+Y*WW; X≤EX; !PX+32 !X+1) c <
= C: aget X Cells
= {and C.mask MCs.2 | nz? = B PX PY TileGreen}
= {and C.mask MCs.5 | nz? = B PX PY TileRed}>*/
// FOW
/*= for (Y:CY PY:IY; Y≤EY; !PY+32 !Y+1)
for (X:CX+Y*WW EX:EX+Y*WW PX:IX; X≤EX; !PX+32 !X+1)
{any Units,?.owner≥≤ThisPlayer (aget X Cells).sensors
;B PX PY TileSolidBlack}*/
// draw selection rect and/or choose cursor image
/*= Cur:{CurXY = Cursors.basic.cross
;InVP |a selPoint CursorXY = Cursors.basic.glass
;√ = Cursor.point}*/
= {[X Y W H]:VP'cur = [W H],abs≥10 |a G.rect #00ff00 X+VX Y+VY W H}
>
render:<= o w:<=W> h:<=H> proxy:updScreen>
input:
<[\mice_move _ P] = !M:P
;[\mice_left y XY] = !A:XY
;[\mice_left ø XY] = CC:XY,screenToCell
= S:{A,n = Sel
;(abs M-A) ≥≥ 10 = selRect cur,c
;U:XY,selPoint = [U.id]}
= {UIButton = snd “$Sounds/click.wav” = UIButton'onClick = !UIButton:ø
;inRect [0 0 W H] XY = D:{S=S,0; CC,cellIndex}
= UIAct.type
| <ø = !Sel:S = S,<[Id@_] = unitSay Units,Id,clickSnd Id = S>
;\build = T:UTs.(UIAct.what) = U:Sel,<[Id]=Units,Id>
= buildRect CC U T | all y
| <ø = snd “$Sounds/placement_error.wav”
= notify U.owner “Can't build there” = ø
;_ = snd “$Sounds/placement_success.wav”
= !UIAct.dst:CC,cellIndex = lmbOrder UIAct>
; _ = !UIAct.dst:D = lmbOrder UIAct>
| <y = !unitAsUI:unitAsRootUI = !UIAct:ø>
;√ = {A = !unitAsUI:unitAsRootUI}
= !Sel:S}
= !A:ø
;[\mice_right y XY] = {UIAct=!UIAct:ø; inRect [0 0 W H] XY = rmbOrder XY}
;[X@Xs] = !Keys.X:Xs>
10
Name:
Anonymous
2012-11-29 8:53
>>9
What a beautiful language.
11
Name:
Anonymous
2012-11-29 8:56
>>9
My dead dog looks cuter than that.
13
Name:
Anonymous
2012-11-29 9:11
>>12
try reading Perl obfuscation contest entries
14
Name:
Anonymous
2012-11-29 9:16
>>12
But APL is actually good.
17
Name:
Anonymous
2012-11-29 9:30
>>15
At being clear and concise.
18
Name:
Anonymous
2012-11-29 9:30
If it ain't Symta, it's crap.
Symta is shit.
20
Name:
Anonymous
2012-11-29 13:23
>>19
But can you write a graphical file browser in J, together with all common widgets?
arrow D Fn S:{\normal} = o
render:<=skin “arrow/$D-$S”>
input:<[\mice_left y P] = S,<\normal=!S:\pressed = timer 1/4 <= S,<\pressed = Fn,c = √>> >
;[\mice_left n P] = S,<\pressed=Fn,c=!S:\normal>>
_prn:<=“arrow\\$D S:\\$S”>
litem Text W:{140} S:{\normal} = T:ø = TW:1 = TH:ø = Bs:ø
= R:o render:<OS:{ø}=Bs.{OS;S}> text:<=T>
s_text:<ø = !S:\disabled = r “ ”
;Text:!T = !T:Text = textSize \small T | <[W H] = !TW:W = !TH:H>
= T,<!“ ”=!S:\normal> = !Bs: q normal picked disabled | sort
| m:N l N (skin “litem/$N” |h cut 0 0 W 18
| <G = C:N,<\picked=\white;\disabled=\grey;_=\yellow>
= blitText 4 G'h%2-TH%2+2 \small T Tint:C G>)>
s_state:<NS=!S:NS>
input:<[\mice_left y P] = !S:S,<\normal=\picked;\picked=\normal;X=X>>
_prn:<=“litem $T W:$W $S:\\$S”>
= R.s_text Text = R
list Xs L:{5} W:{300} F:{<V=>} = O:ø = N:0 = LV:ø = B: dup {L;1} “ ” | m:T litem T W:W | box\v
= Is:B'items | m ?,1 = H:Is,0'render'h
= R:o render:B.render value:<=Xs,N> data:<=Xs> off:<=O>
s_off:<NO:!O = !O: sature1D 0 Xs,len-1 NO
= rng 0 L | e <K = I:O+K = Is,K.s_text Xs,I = {I≥≤N = Is,K.s_state \picked}>>
s_data:<Ys = !Xs:Ys = !N:0 = !O:ø = s_off 0>
input:<[\mice_left y P] = NN: sature1D 0 Xs,len-1 P,1%H+O
= {NN≤≥N = K:N-O = {K≥≥0 |a K≤≤L= Is,K.s_state \normal}
= !N:NN = F Xs,N = Is,(N-O).s_state \picked}>
= R.s_off 0 = {Xs = Is,0.s_state \picked} = F Xs,N = R
box D Xs S:{0} = Rs:Xs|m:X [[0 0 1 1] X] = o items:<=Rs>
render:<= Hs: m ?'render Xs = !Rs:ø = W:0 = H:0
= D,<\v = !W: maxBy ?'w Hs | ?'w = !H: Hs | m ?'h | infix S | sum
; _ = !H: maxBy ?'h Hs | ?'h = !W: Hs | m ?'w | infix S | sum>
= u w:<=W> h:<=H>
proxy:<X Y G = N:0 = m [? ??] Xs Hs
| e <[B H] = P:D,<\v=[0 N];_=[N 0]> = G.blit @(P+[X Y]) H
= [@!Rs [[@P H'w H'h] B]] = !N+(S+D,<\v=H'h; _=H'w>)>>>
_prn:<=“box\\$D S:$S”>
slider D Fn Size:{124} A:{1} V:{0} S:{\normal}
= K: skin “slider/knob” = B: skin “slider/$D-normal”
= !B: B.cut 0 0 @D,<\v=[B'w Size];_=[Size B'h]> = M:Size-D,<\v=K'h;_=K'w>
= !V:(sature1D 0 100 V)*M/100 = R:o
render:<=B'copy.blit @([1 1]+D,<\v=[0 V,int];_=[V,int 0]>) K> value:<=V*100%M>
s_value:<NV = !NV:sature1D 0 100 NV = {NV≤≥(c value) = !V:NV*M/100 = R:value,c = Fn R} = ø>
input:<[\mice_move _ P] = S,<\pressed = sature1D 0 M D,<\v=P,1;_=P,0>
| <NV:!V = !V:NV = Fn value,c>>
;[\mice_left y P] = S,<\normal=!S:\pressed>
;[\mice_left n P] = S,<\pressed=!S:\normal>>
_prn:<=“slider\\$D Size:$Size”>
= {A = box D ::l (arrow D,<\v=\up;_=\left> <=R.s_value R'value-A>)
R
(arrow D,<\v=\down;_=\right> <=R.s_value R'value+A>)
;√ = R}
fileList Root F = fl:<R = Es:R,ls = Fs: k file? Es | m ?,pne,<[P N E]=“$N.$E”>
= Ds: k dir? Es | m ?,pne,0,rhd | m “$?/”
= [@R,<!“/”=[“../”]> @Ds @Fs]>
= Root,rhd,<!“/”=!Root:“$Root/”> = L:list L:9 F:<N=F “$Root$N”> Root,fl = LI:L.input
= !L.input:<[\mice_left_double y P] = V:L'value,<“../”=Root,pne,<[P N E]=[P,rtl N E],unpne>
;V=“$Root$V”>
= {V,dir? = !Root:V = L.s_data V,fl}
;E = LI E>
= box\h ::l L (slider\v <N = L.s_off N*L'data,len%100>)
21
Name:
Anonymous
2012-11-29 13:25
>>20
self fix: strip all `_prn` lines, they are just pretty printer helpers.
22
Name:
Anonymous
2012-11-29 13:35
>>4
That's the reduced planck's constant times the gravitational constant. I think.
23
Name:
Anonymous
2012-11-29 13:56
I tried to read SICP but the metaphysical bullshite was more pretentious and irritating than w(p)gtr, so I gave up.
25
Name:
Anonymous
2012-11-29 14:35
>>23
the metaphysical bullshite was more pretentious and irritating than w(p)gtr,
You must be kidding me. Why the fuck are you comparing ``we conjure the spirits of the computer with our spells'' with ``No, in this book,
synergy means
cartoon foxes . What I’m saying is: this book will be starting off with an exorbitant amount of
cartoon foxes ''?
The latter fucking reeks of Reddit, the former is just a harmless analogy.
28
Name:
Anonymous
2012-11-29 18:39
>>27
Doesn't look like J to me. I don't think it would parse.
29
Name:
Anonymous
2012-11-29 19:12
>>28
symta is pretty much apl + j though