SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
本⽇も怪物曲線
~ EVALの復習 ~
Return of the EVAL
⾃⼰紹介
Twitter: ヘキソミノ @Hexomino
ネットワークエンジニア
外資系メーカ勤務
シェル芸勉強会参加 2014.12(#14)~
今⽇のLTのきっかけ
•私は⾃分の過去LTスライドを
眺めながらふと疑問を⽣じた
2016.6.18 (シェル芸#23) LT
きっかけ
• ⼀年半前 私はゴスパーの流蛇を sed +
AWK で実現
• 当時 私はEVALでは不可能と信じていた
• それは果たして真実だったのだろうか?
echo xx | sed "s:.:| sed
's/^/S/;y/AB/CD/;s/C/ALBLLBRARRAARBL/g;s/D/RALBBLL
BLARRARB/g':g;s:^:echo A :;" | sh | awk
'{match($0,/^S*/);deg=RLENGTH;print "from turtle
import
*;speed(0);pensize(2);ms=min(screensize())*.95;l=m
s*sqrt(3)/(sqrt(7)**" deg ");up();setpos(-
ms*sqrt(3)/2,-ms/2);down();rt(atan(sqrt(3)/5)*"
deg "*180/pi);" $0 "done();"}' | sed
's/S//g;s/LR//g;s/L/lt(60);/g;s/R/rt(60);/g;s/[AB]
/fd(l);/g;' | python
(⾃問)
EVAL修⾏が⾜りない
のではないか?
私は⿃海師匠のEVAL芸を
よく理解していなかった
⿃海師匠によるヒルベルト曲線
l='L${r}FR${l}F${l}RF${r}L' r='R${l}FL${r}F${r}LF${l}R'
eval eval eval eval eval eval l= r= eval echo '$l' |
{ read a; b=${a%%F*}; echo "from turtle import
*;speed(0);pensize(2);ms=min(screensize())*0.8;l=2*ms/(2*
*${#b}-1);up();setpos(-ms,-ms);down();${a}done()"; } |
sed 's/L/lt(90);/g;s/R/rt(90);/g;s/F/fd(l);/g' | python
これは何を
意味するのか?
研鑽を積むべく私は
EVAL修⾏を開始した
修⾏1. ネイピア数を求める
$ eval echo 1 '+1/¥(1 ¥*{1..'{1..20}'} ¥)' | bc -l
2.71828182845904523525
修⾏1. ネイピア数を求める
echo
1
+1/(1 *1 )
+1/(1 *1 *2 )
..
+1/(1 *1 *2 *3 *4 *5 *6 *7 *8 *9 *10 … *20 )
eval echo 1 '+1/¥(1 ¥*{1..'{1..20}'} ¥)'
eval echo
1
'+1/¥(1 ¥*{1..1} ¥)'
'+1/¥(1 ¥*{1..2} ¥)'
..
'+1/¥(1 ¥*{1..20} ¥)'
リテラル リテラル
ブレース展開
ブレース展開
修⾏2. 素数を求める
修⾏2. 素数を求める
$ eval eval ¥''n='¥''{1..'$(dc -e 1000vp)'}'¥''
eval eval eval echo
'¥'¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥'¥¥¥¥¥¥¥'¥¥¥'¥''$((
'¥'¥¥¥'¥¥¥¥¥¥¥'¥¥¥'¥''$n'¥'¥¥¥'¥¥¥¥¥¥¥'¥¥¥'¥''
*'¥'¥¥¥'¥¥¥¥¥¥¥'¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥'¥¥¥'¥''{2..$((
1000/n))}'¥'¥¥¥'¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥'¥¥¥¥¥¥¥'¥¥¥'¥''))
'¥'¥¥¥'¥¥¥¥¥¥¥'¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥'¥'';'¥' | tr ' ' ¥¥n
| sort -n | uniq –u
2
3
5
7
..
997
例: カースト最上位者が⽇常的に書く、素数を出⼒するワンライナー
http://ja.uncyclopedia.info/wiki/シェル芸
修⾏2. 素数を求める
とあるカースト最上位者との会話 (回想)
素数のEVALワンライ
ナーがよくわからない
んですけど
ああ あれは そんなに
難しいことないですよ
………
(この部屋で…この部屋で理解してい
ないのは俺だけなのだろうか……)
修⾏2.
素数EVAL
ワンライナーの解析
修⾏2. 素数EVAL (1/5)
eval eval ¥''n='¥''{1..'$(dc -e 1000vp)'}'¥'' eval
eval eval echo '¥'¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥'¥¥¥¥¥¥¥'¥¥¥'¥''$
(('¥'¥¥¥'¥¥¥¥¥¥¥'¥¥¥'¥''$n'¥'¥¥¥'¥¥¥¥¥¥¥'¥¥¥'
¥''*'¥'¥¥¥'¥¥¥¥¥¥¥'¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥'¥¥¥'¥''{2..$((
1000/n))}'¥'¥¥¥'¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥'¥¥¥¥¥¥¥'¥¥¥'¥''))
'¥'¥¥¥'¥¥¥¥¥¥¥'¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥'¥'';'¥'
リテラル コマンド置換
eval 'n='{1..31}' eval eval eval echo '¥¥¥¥¥¥¥'¥¥¥'
¥''$(('¥'¥¥¥'¥''$n'¥'¥¥¥'¥''*'¥'¥¥¥'¥¥¥¥¥¥¥'¥''{2..
$((1000/n))}'¥'¥¥¥¥¥¥¥'¥¥¥'¥''))'¥'¥¥¥'¥¥¥¥¥¥¥'';'
eval 'n='{1..31}' eval eval eval echo '¥¥¥¥¥¥¥'¥¥¥'
¥''$(('¥'¥¥¥'¥''$n'¥'¥¥¥'¥''*'¥'¥¥¥'¥¥¥¥¥¥¥'¥''{2..
$((1000/n))}'¥'¥¥¥¥¥¥¥'¥¥¥'¥''))'¥'¥¥¥'¥¥¥¥¥¥¥'';'
修⾏2. 素数EVAL (2/5)
n=1 eval eval eval echo ¥¥¥'¥''$(('¥''$n'¥''
*'¥'¥¥¥''{2..$((1000/n))}'¥¥¥'¥''))'¥'¥¥¥';
..
n=31 eval eval eval echo ¥¥¥'¥''$(('¥''$n'¥''
*'¥'¥¥¥''{2..$((1000/n))}'¥¥¥'¥''))'¥'¥¥¥';
リテラルブレース展開
n=1 .. n=31 の複数コマンドへ展開。
コマンド区切りのセミコロン
ブレース展開でスペースを含める
ためのクオーテーション
eval eval echo ¥''$(('1'*'¥'{2..$((1000/1))}¥''))'¥';
..
eval eval echo ¥''$(('31'*'¥'{2..$((1000/31))}¥''))'¥';
修⾏2. 素数EVAL (3/5)
n=1 eval eval eval echo ¥¥¥'¥''$(('¥''$n'
¥''*'¥'¥¥¥''{2..$((1000/n))}'¥¥¥'¥''))'¥'¥¥¥';
..
n=31 eval eval eval echo ¥¥¥'¥''$(('¥''$n'
¥''*'¥'¥¥¥''{2..$((1000/n))}'¥¥¥'¥''))'¥'¥¥¥';
リテラル nの評価
eval echo '$((1*'{2..1000}'))';
..
eval echo '$((31*'{2..32}'))';
修⾏2. 素数EVAL (4/5)
eval eval echo ¥''$(('1'*'¥'{2..$((1000/1))}¥''))'¥';
..
eval eval echo ¥''$(('31'*'¥'{2..$((1000/31))}¥''))'¥';
リテラル 算術式展開
echo $((1*2)) $((1*3)) .. $((1*1000));
..
echo $((31*2)) $((31*3)) .. $((31*32));
修⾏2. 素数EVAL (5/5)
eval echo '$((1*'{2..1000}'))';
..
eval echo '$((31*'{2..32}'))';
リテラル ブレース展開
2 3 .. 1000
..
62 93 .. 992
修⾏2. 素数EVAL 最終形
echo $((1*2)) $((1*3)) .. $((1*1000));
..
echo $((31*2)) $((31*3)) .. $((31*32));
算術式展開
1の倍数 (1を除く)
31の倍数 (31を除く)
私はEVALに⼀定の理解を得た
初回の評価 2回⽬の評価
ヒルベルト曲線と
ゴスパーの流蛇の違い
ヒルベルト曲線:
⾃⼰相似形を挿⼊
ゴスパーの流蛇:
⾃⼰相似形に置換
ゴスパーの流蛇シェル芸
EVALでやってみた
a='S${a}L${b}LL${b}R${a}RR${a}${a}R${b}L'
b='SR${a}L${b}${b}LL${b}L${a}RR${a}R${b}' eval eval eval
a='F' b='F' eval echo '${a}' | { read c; d=${c%%F*}; echo
"from turtle import
*;speed(0);pensize(2);ms=min(screensize())*0.95;l=ms*sqrt(3)/
(sqrt(7)**${#d});up();setpos(-ms*sqrt(3)/2,-ms/2);down
();rt(atan(sqrt(3)/5)*${#d}*180/pi);${c}done()"; } | sed 's/S
//g;s/L/lt(60);/g;s/R/rt(60);/g;s/F/fd(l);/g' | python &
• ゴスパー曲線(n=7)の写像
• A (正順) à SALBLLBRARRAARBL
• B (逆順) à SRALBBLLBLARRARB
• L: 60度左回転
• R: 60度右回転
• S: θ = Arctan√3/5 右回転
最後の変数定義を
ヒルベルト曲線の
a='' b='' eval
から
a='F' b='F' eval
へと変更
ゴスパーの流蛇 (n=7,深度3)
拡張ゴスパー曲線 (n=13)
a='SLL${b}R${a}RR${a}L${b}LL${b}R${a}${a}RR${a}R${b}L${a}R${b}LL${b}L${a}R'
b='SL${b}R${a}RR${a}L${b}R${a}L${b}LL${b}${b}L${a}RR${a}R${b}LL${b}L${a}RR'
eval eval eval a='F' b='F' eval echo '$a' | { read c; d=$(echo ${c%%F*} |
tr -dc S); echo "from turtle import *;speed(0);pensize(2);ms=min(screensize
())*0.9;l=ms*sqrt(3)/(sqrt(13)**${#d});up();setpos(-ms*sqrt(3)/2,-ms/2);
down();rt(atan(sqrt(3)/7)*${#d}*180/pi);${c}done()"; } | sed 's/S//g;
s/L/lt(60);/g;s/R/rt(60);/g;s/F/fd(l);/g' | python &
• ゴスパー曲線(n=13)の写像
• A (正順) à SLLBRARRALBLLBRAARRARBLARBLLBLAR
• B (逆順) à SLBRARRALBRALBLLBBLARRARBLLBLARR
• L: 60度左回転
• R: 60度右回転
• S: θ = Arctan√3/7 右回転
拡張ゴスパー流蛇曲線
(n=13,深度3)
👍
前回の
シェルピンスキー曲線
もスッキリしたい
(再掲)
シェルピンスキー曲線シェル芸
c='N${c}FR${c}LLLFFL${c}FR
${c}' eval eval eval c=
eval echo '$c' | { read a;
b=${a%%F*}; echo "from
turtle import
*;speed(0);pensize(2);ms=m
in(screensize())*0.9;l=ms/
(2**${#b});up();setpos(-
ms+l/2,-
ms+l);down();L${a}FR${a}FR
${a}FR${a}FR done()"; } |
sed
's/N//g;s/RLL//g;s/L/lt(45
);/g;s/R/rt(90);/g;s/FF/fd
(l);/g;s:F:fd(l/sqrt(2));:
g' | python
この “${a}FR” 繰り返し
4回をスッキリしたい
シェルピンスキー曲線シェル芸
EVAL改良編
c='${c}${c}${c}${c}' eval c=¥''${c}FR'¥' eval c=¥¥¥'¥''S${
c}FR${c}LLLFFL${c}FR${c}'¥'¥¥¥' eval eval eval eval c= eval
echo '${c}' | { read a; b=${a%%F*}; echo "from turtle import
*;speed(0);pensize(2);ms=min(screensize())*0.95;l=ms/(2**
${#b});up();setpos(-ms+l/2,-ms+l);down();L${a} done()"; } |
sed 's/S//
g;s/RLL//g;s/L/lt(45);/g;s/R/rt(90);/g;s/FF/fd(l);/g;s:F:fd(l
/sqrt(2));:g' | python &
素数EVALワンライナーの解析で得た知⾒を活⽤
c='S${c}FR${c}LLLFFL${c}FR${c}'
L: 左へ45度回転
R: 右へ90度回転
👍👍
EVALを活⽤し
新作へ
シェルピンスキーのガスケット
a='L${b}R${a}R${b}L' b='R${a}L${b}L${a}R' eval eval eval eval
eval a='F' b='F' eval echo '$a' | { read c; d=${c%%F*}; echo
"from turtle import
*;speed(0);pensize(2);ms=min(screensize())*0.95;l=ms/2**(${#d
}-1);up();setpos(-ms,-ms*sqrt(3)/2);down();${c}done()"; } |
sed 's/L/lt(60);/g;s/R/rt(60);/g;s/F/fd(l);/g' | python &
• A (正順) à LBRARBL
• B (逆順) à RALBLAR
• L: 60度左回転
• R: 60度右回転
ペアノ曲線
a='S${a}F${b}F${a}RFR${b}F${a}F${b}LFL${a}F${b}F${a}' b='S${
b}F${a}F${b}LFL${a}F${b}F${a}RFR${b}F${a}F${b}' eval eval
eval a= b= eval echo '$a' | { read c; d=${c%%F*}; echo "from
turtle import
*;speed(0);pensize(2);ms=min(screensize())*.95;l=2*ms/(3**
${#d}-1);up();setpos(-ms,-ms);down();L${c}done()"; } | sed
's/S//g;s/L/lt(90);/g;s/R/rt(90);/g;s/F/fd(l);/g' | python &
• A (正順) à AFBFARFRBFAFBLFLAFBFA
• B (逆順) à BFAFBLFLAFBFARFRBFAFB
• L: 90度左回転
• R: 90度右回転
参考: 空間充填曲線とフラクタル
ISBN 4-431-70775-1
ペアノ曲線 (オズグッド曲線)
lr='${a}LFL${a}RFR${a}' rl='${a}RFR${a}LFL${a}' eval a='S${
lr}RFR${rl}LFL${lr}' eval eval eval a='FF' eval echo ¥''$a'¥'
| { read c; d=${c%%F*}; echo "from turtle import
*;speed(0);pensize(2);ms=min(screensize())*.95;l=2*ms/(1.5*(3
**${#d})-.5);up();setpos(-ms,-ms);down();L${c}done()"; } |
sed 's/S//g;s/L/lt(45);/g;s/R/rt(45);/g;s/FF/fd(l*sqrt(2
));/g;s/F/fd(l*.5);/g' | python &
参考: 空間充填曲線とフラクタル
ISBN 4-431-70775-1
ルベーグ曲線
a='S${a}LCLL${f}RRCR${a}RCRRC${f}${f}CLLCL${a}LCLL${f}RRCR${a}'
f='C${f}${f}C' eval eval eval eval f='F' a='G' eval echo '$a' | { read
c; d=${c%%G*}; echo "from turtle import
*;speed(0);pensize(2);ms=min(screensize())*.95;l=2*ms/(1.4*(2**${#d})-
.4);up();setpos(-ms,-ms);down();L${c}done()"; } | sed 's/S//
g;s/L/lt(45);/g;s/R/rt(45);/g;s/C/fd(l*.
2);/g;s/F/fd(l);/g;s/G/fd(l*sqrt(2));/g;' | python &
参考: 空間充填曲線とフラクタル
ISBN 4-431-70775-1
⾃⼰回避曲線 (固有名称不明)
a='${a}${a}${a}' eval a=¥''${a}RFR'¥' eval a=¥¥¥'¥''S${
a}RFR${a}LFLFL${a}LFRFRFLFRFRFL${a}'¥'¥¥¥' eval eval eval
a='F' eval echo '$a' | { read c; d=${c%%F*}; echo "from
turtle import
*;speed(0);pensize(2);ms=min(screensize())*0.95;l=ms/(3*(2**
${#d})-2);up();setpos(-ms*(1-.5/4**${#d}),ms*sqrt(3)/2*(1-
.5/4**${#d}));down();${c}done()"; } | sed 's/S//
g;s/L/lt(60);/g;s/R/rt(60);/g;s/F/fd(l);/g' | python &
参考: KK62526のホームページ – ⾃⼰回避曲線
http://www.kk62526.server-shared.com/Lsys/SelfAvoiding.html
修⾏3.
MS PowerPointとの
バックスラッシュの闘い
(継続中)
パワーポイントでのバックスラッシュの表⽰は全く無理なことなのでしょ
うか?
検索して少し調べてみたのですが、あまりパワーポイントとバックスラッ
シュについてのページがヒットせず、よく分からないままでいます。
どなたかご存知ありませんでしょうか?
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1319718508

Weitere ähnliche Inhalte

Was ist angesagt?

Cloud TPU Driver API ソースコード解析
Cloud TPU Driver API ソースコード解析Cloud TPU Driver API ソースコード解析
Cloud TPU Driver API ソースコード解析Mr. Vengineer
 
Composable Callbacks & Listeners
Composable Callbacks & ListenersComposable Callbacks & Listeners
Composable Callbacks & ListenersTaisuke Oe
 
CMSとPerlで遊ぼう
CMSとPerlで遊ぼうCMSとPerlで遊ぼう
CMSとPerlで遊ぼうDaiki Ichinose
 
awk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyoawk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011TokyoRyuichi Ueda
 
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうかBoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうかYuki Miyatake
 
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法博文 斉藤
 
2017年夏のPerl
2017年夏のPerl2017年夏のPerl
2017年夏のPerlcharsbar
 
今さら始めるCoffeeScript
今さら始めるCoffeeScript今さら始めるCoffeeScript
今さら始めるCoffeeScriptAshitaba YOSHIOKA
 
Frege, What a Non-strict Language
Frege, What a Non-strict LanguageFrege, What a Non-strict Language
Frege, What a Non-strict Languagey_taka_23
 
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けープログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けーTanUkkii
 

Was ist angesagt? (18)

Move semantics
Move semanticsMove semantics
Move semantics
 
Cloud TPU Driver API ソースコード解析
Cloud TPU Driver API ソースコード解析Cloud TPU Driver API ソースコード解析
Cloud TPU Driver API ソースコード解析
 
Composable Callbacks & Listeners
Composable Callbacks & ListenersComposable Callbacks & Listeners
Composable Callbacks & Listeners
 
CMSとPerlで遊ぼう
CMSとPerlで遊ぼうCMSとPerlで遊ぼう
CMSとPerlで遊ぼう
 
Akka stream
Akka streamAkka stream
Akka stream
 
awk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyoawk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyo
 
Em synchrony について
Em synchrony についてEm synchrony について
Em synchrony について
 
VerilatorとSystemC
VerilatorとSystemCVerilatorとSystemC
VerilatorとSystemC
 
Poolboy
PoolboyPoolboy
Poolboy
 
Nginx lua
Nginx luaNginx lua
Nginx lua
 
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうかBoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
 
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
 
2017年夏のPerl
2017年夏のPerl2017年夏のPerl
2017年夏のPerl
 
Testman
TestmanTestman
Testman
 
今さら始めるCoffeeScript
今さら始めるCoffeeScript今さら始めるCoffeeScript
今さら始めるCoffeeScript
 
pecl-AOPの紹介
pecl-AOPの紹介pecl-AOPの紹介
pecl-AOPの紹介
 
Frege, What a Non-strict Language
Frege, What a Non-strict LanguageFrege, What a Non-strict Language
Frege, What a Non-strict Language
 
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けープログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
 

Ähnlich wie 怪物曲線2 - evalの復習

初めてのHaskell (表)
初めてのHaskell (表)初めてのHaskell (表)
初めてのHaskell (表)karky7
 
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数Wataru Terada
 
超絶技巧プログラミングの世界(FTD2015)
超絶技巧プログラミングの世界(FTD2015)超絶技巧プログラミングの世界(FTD2015)
超絶技巧プログラミングの世界(FTD2015)mametter
 
詳説ぺちぺち
詳説ぺちぺち詳説ぺちぺち
詳説ぺちぺちdo_aki
 
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara onlineHisatoshi Onishi
 
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門グラフニューラルネットワーク入門
グラフニューラルネットワーク入門ryosuke-kojima
 
入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !Nobutada Matsubara
 
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)mametter
 
Clojure programming-chapter-2
Clojure programming-chapter-2Clojure programming-chapter-2
Clojure programming-chapter-2Masao Kato
 
おれが考えた見やすい通知
おれが考えた見やすい通知おれが考えた見やすい通知
おれが考えた見やすい通知Yoshiyuki MIKAMI
 
Postgresql advent calender 2014 using jsonb by ecpg
Postgresql advent calender 2014 using jsonb by ecpgPostgresql advent calender 2014 using jsonb by ecpg
Postgresql advent calender 2014 using jsonb by ecpgToshi Harada
 
Sized Linear Algebra Package のチュートリアル
Sized Linear Algebra Package のチュートリアルSized Linear Algebra Package のチュートリアル
Sized Linear Algebra Package のチュートリアルAkinori Abe
 
ATSプログラミングチュートリアル
ATSプログラミングチュートリアルATSプログラミングチュートリアル
ATSプログラミングチュートリアルKiwamu Okabe
 
[DLHacks]PyTorch, PixyzによるGenerative Query Networkの実装
[DLHacks]PyTorch, PixyzによるGenerative Query Networkの実装 [DLHacks]PyTorch, PixyzによるGenerative Query Networkの実装
[DLHacks]PyTorch, PixyzによるGenerative Query Networkの実装 Deep Learning JP
 
メンテできないコードをメンテする技術
メンテできないコードをメンテする技術メンテできないコードをメンテする技術
メンテできないコードをメンテする技術Tomoya Ishida
 
拡張ライブラリ作成による高速化
拡張ライブラリ作成による高速化拡張ライブラリ作成による高速化
拡張ライブラリ作成による高速化Kazunori Jo
 
MoveEnginetopochangerMesh2
MoveEnginetopochangerMesh2MoveEnginetopochangerMesh2
MoveEnginetopochangerMesh2守淑 田村
 
文献紹介:Big Bird: Transformers for Longer Sequences
文献紹介:Big Bird: Transformers for Longer Sequences文献紹介:Big Bird: Transformers for Longer Sequences
文献紹介:Big Bird: Transformers for Longer SequencesToru Tamaki
 

Ähnlich wie 怪物曲線2 - evalの復習 (20)

Fourier transform
Fourier transformFourier transform
Fourier transform
 
初めてのHaskell (表)
初めてのHaskell (表)初めてのHaskell (表)
初めてのHaskell (表)
 
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
 
超絶技巧プログラミングの世界(FTD2015)
超絶技巧プログラミングの世界(FTD2015)超絶技巧プログラミングの世界(FTD2015)
超絶技巧プログラミングの世界(FTD2015)
 
詳説ぺちぺち
詳説ぺちぺち詳説ぺちぺち
詳説ぺちぺち
 
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
 
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
 
入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !
 
Data munging
Data mungingData munging
Data munging
 
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
 
Clojure programming-chapter-2
Clojure programming-chapter-2Clojure programming-chapter-2
Clojure programming-chapter-2
 
おれが考えた見やすい通知
おれが考えた見やすい通知おれが考えた見やすい通知
おれが考えた見やすい通知
 
Postgresql advent calender 2014 using jsonb by ecpg
Postgresql advent calender 2014 using jsonb by ecpgPostgresql advent calender 2014 using jsonb by ecpg
Postgresql advent calender 2014 using jsonb by ecpg
 
Sized Linear Algebra Package のチュートリアル
Sized Linear Algebra Package のチュートリアルSized Linear Algebra Package のチュートリアル
Sized Linear Algebra Package のチュートリアル
 
ATSプログラミングチュートリアル
ATSプログラミングチュートリアルATSプログラミングチュートリアル
ATSプログラミングチュートリアル
 
[DLHacks]PyTorch, PixyzによるGenerative Query Networkの実装
[DLHacks]PyTorch, PixyzによるGenerative Query Networkの実装 [DLHacks]PyTorch, PixyzによるGenerative Query Networkの実装
[DLHacks]PyTorch, PixyzによるGenerative Query Networkの実装
 
メンテできないコードをメンテする技術
メンテできないコードをメンテする技術メンテできないコードをメンテする技術
メンテできないコードをメンテする技術
 
拡張ライブラリ作成による高速化
拡張ライブラリ作成による高速化拡張ライブラリ作成による高速化
拡張ライブラリ作成による高速化
 
MoveEnginetopochangerMesh2
MoveEnginetopochangerMesh2MoveEnginetopochangerMesh2
MoveEnginetopochangerMesh2
 
文献紹介:Big Bird: Transformers for Longer Sequences
文献紹介:Big Bird: Transformers for Longer Sequences文献紹介:Big Bird: Transformers for Longer Sequences
文献紹介:Big Bird: Transformers for Longer Sequences
 

怪物曲線2 - evalの復習