この記事は「Elixir Advent Calendar 2023」8日目の記事です
東京にいるけどfukuokaexのYOSUKEです。
普段は 合同会社TheWaggle で教材開発・システム開発・研修講師などマルチに活動してます。
このシリーズでは、文系ですらない、体育会系でも始められるプログラミング学習 というテーマで元自衛官だった僕が
自衛官からエンジニアになってもらいたいという気持ちを込めて、普段は大人しいですが、このコラムシリーズでは、あえて、体育会系のノリで、貴様ら理屈で覚えるなら体で覚えろ!というノリで書いてみたいと思います。
なので、初学者向けですが、理論は後回し、まずは動かして体感しろってノリの第8回目です。
それでは、いくぞ!
タプルにパターンマッチで銃を渡す
いいか、貴様ら!
前回、20式の銃について諸元を入れたな、我々が知るべき銃は20式だけでは当然ない!
というわけで、これから64式、89式もデータに起こして管理しよう。
20式
%{
"名称" => "20式5.56mm小銃" ,
"種類" => "小銃" ,
"製造国" => "日本" ,
"口径" => "5.56 mm" ,
"銃身長" => "330 mm" ,
"使用弾薬" => "89式5.56mm普通弾" ,
"装弾数" => "30発" ,
"作動方式" => "ガス圧作動方式" ,
"全長" => "851 mm (銃床最小 779 mm)" ,
"重量" => "3.5 kg" ,
"発射速度" => "650 – 850発/分" ,
"有効射程" => "500 m以上"
}
89式
%{
"名称" => "89式5.56mm小銃" ,
"種類" => "小銃" ,
"製造国" => "日本" ,
"口径" => "5.56 mm" ,
"銃身長" => "420 mm" ,
"使用弾薬" => "89式5.56mm普通弾" ,
"装弾数" => "20発/30発" ,
"作動方式" => " ガス圧利用(ロングストロークガスピストン式)、ロータリーボルト式" ,
"全長" => "916 mm (固定銃床式)" ,
"重量" => "3.5 kg" ,
"発射速度" => "650 – 850発/分" ,
"有効射程" => "500 m以上"
}
64式
%{
"名称" => "64式7.62mm小銃" ,
"種類" => "軍用小銃" ,
"製造国" => "日本" ,
"口径" => "7.62 mm" ,
"銃身長" => "450 mm" ,
"使用弾薬" => "7.62x51mm NATO弾" ,
"装弾数" => "20発" ,
"作動方式" => " ガス圧利用(ロングストロークガスピストン式)、ティルトボルト式" ,
"全長" => "990 mm (固定銃床式)" ,
"重量" => "4.3 kg" ,
"発射速度" => "500発/分" ,
"有効射程" => "400 m以上"
}
これら3つの銃をそれぞれ、管理する為にタプルに格納してみよう。
{
%{
"名称" => "20式5.56mm小銃" ,
"種類" => "小銃" ,
"製造国" => "日本" ,
"口径" => "5.56 mm" ,
"銃身長" => "330 mm" ,
"使用弾薬" => "89式5.56mm普通弾" ,
"装弾数" => "30発" ,
"作動方式" => "ガス圧作動方式" ,
"全長" => "851 mm (銃床最小 779 mm)" ,
"重量" => "3.5 kg" ,
"発射速度" => "650 – 850発/分" ,
"有効射程" => "500 m以上"
},
%{
"名称" => "89式5.56mm小銃" ,
"種類" => "小銃" ,
"製造国" => "日本" ,
"口径" => "5.56 mm" ,
"銃身長" => "420 mm" ,
"使用弾薬" => "89式5.56mm普通弾" ,
"装弾数" => "20発/30発" ,
"作動方式" => " ガス圧利用(ロングストロークガスピストン式)、ロータリーボルト式" ,
"全長" => "916 mm (固定銃床式)" ,
"重量" => "3.5 kg" ,
"発射速度" => "650 – 850発/分" ,
"有効射程" => "500 m以上"
},
%{
"名称" => "64式7.62mm小銃" ,
"種類" => "軍用小銃" ,
"製造国" => "日本" ,
"口径" => "7.62 mm" ,
"銃身長" => "450 mm" ,
"使用弾薬" => "7.62x51mm NATO弾" ,
"装弾数" => "20発" ,
"作動方式" => " ガス圧利用(ロングストロークガスピストン式)、ティルトボルト式" ,
"全長" => "990 mm (固定銃床式)" ,
"重量" => "4.3 kg" ,
"発射速度" => "500発/分" ,
"有効射程" => "400 m以上"
}
}
よし、これらの銃を貴様らにそれぞれ渡してやろう。
田中、鈴木、高橋 前へ!
番号!
- 「イチ、ニィ、サン」
よーし、今から貴様らにパターンマッチで小銃を渡すから大事に扱え!
いいなわかったな!
{ tanaka, suzuki, takahashi } =
{
%{
"名称" => "20式5.56mm小銃" ,
"種類" => "小銃" ,
"製造国" => "日本" ,
"口径" => "5.56 mm" ,
"銃身長" => "330 mm" ,
"使用弾薬" => "89式5.56mm普通弾" ,
"装弾数" => "30発" ,
"作動方式" => "ガス圧作動方式" ,
"全長" => "851 mm (銃床最小 779 mm)" ,
"重量" => "3.5 kg" ,
"発射速度" => "650 – 850発/分" ,
"有効射程" => "500 m以上"
},
%{
"名称" => "89式5.56mm小銃" ,
"種類" => "小銃" ,
"製造国" => "日本" ,
"口径" => "5.56 mm" ,
"銃身長" => "420 mm" ,
"使用弾薬" => "89式5.56mm普通弾" ,
"装弾数" => "20発/30発" ,
"作動方式" => " ガス圧利用(ロングストロークガスピストン式)、ロータリーボルト式" ,
"全長" => "916 mm (固定銃床式)" ,
"重量" => "3.5 kg" ,
"発射速度" => "650 – 850発/分" ,
"有効射程" => "500 m以上"
},
%{
"名称" => "64式7.62mm小銃" ,
"種類" => "軍用小銃" ,
"製造国" => "日本" ,
"口径" => "7.62 mm" ,
"銃身長" => "450 mm" ,
"使用弾薬" => "7.62x51mm NATO弾" ,
"装弾数" => "20発" ,
"作動方式" => " ガス圧利用(ロングストロークガスピストン式)、ティルトボルト式" ,
"全長" => "990 mm (固定銃床式)" ,
"重量" => "4.3 kg" ,
"発射速度" => "500発/分" ,
"有効射程" => "400 m以上"
}
}
よし、これでそれぞれ、に小銃が渡ったな!
田中、貴様の小銃は何だ?
- はい、
tanaka["名称"]
"20式5.56mm小銃"
- 20式5.56mm小銃であります!
よーし、鈴木、貴様の小銃は何だ!
- はい
suzuki["名称"]
"89式5.56mm小銃"
- 89式5.56mm小銃であります!
よーし、いいだろう。高橋、貴様の小銃は何だ!
- はい
takahashi["名称"]
"64式7.62mm小銃"
- 64式7.62mm小銃であります!
よし! それでは次回はお前らの班員 10名全員に一気にそれぞれ、銃を受け渡す方法を伝授しよう!
今日はここまで、それでは次回 Part9でまた会おう!