13
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ElixirAdvent Calendar 2023

Day 8

自衛官からエンジニアへ Elixirから始める Web開発 Part8

Posted at

この記事は「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でまた会おう!

13
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?