はじめに
- 個人的に主要言語と思う8言語&スクリプト(python, JavaScript, Rust, Haskell, C++, C#, bash, PowerShell)のチートシートです
- インデントのために全角空白を含んでます。コピペする場合は気を付けて下さい
- ChatGPT(GPT-4)に書かせたコードなので一部変なコードがあるかもしれません
- 動かない場合はChatGPTにコードと一緒に"<プログラミング名>で<大分類名>の<小分類名>をやろうと思うんだけど、このコードを修正して。"的なことを書けば大抵の場合修正してくれます
チートシート
スプレッドシート版(こちらのほうが見やすいです)
記事版(中身はスプレッドシート版と同じです)
| 大分類 | 小分類 | python | JavaScript | Rust | Haskell | C++ | C# | bash | PowerShell |
|---|---|---|---|---|---|---|---|---|---|
| 基礎 | 変数定義(ミュータブル) | a=1 |
let a=1 |
let mut a=1 |
let a=1 |
int a=1 |
int a=1 |
$a=1 |
$a=1 |
| ↓↓↓↓↓↓↓ あなたの記事の内容 | |||||||||
| 基礎 | 変数定義(イミュータブル) | -- | const x = 1 |
let x = 1 |
let x = 1 |
const int x = 1 |
const int x = 1 |
readonly x=1 |
$x = 1 |
| ─────── | |||||||||
| 基礎 | 変数定義(イミュータブル) | X = 1 |
const x = 1 |
let x = 1 |
let x = 1 |
const int x = 1 |
const int x = 1 |
readonly x=1 |
$x = 1 |
| ↑↑↑↑↑↑↑ 編集リクエストの内容 | |||||||||
| 計算 | 二項演算子 | result = 1 + 2 |
const result = 1 + 2; |
let result = 1 + 2; |
result = 1 + 2 |
int result = 1 + 2; |
int result = 1 + 2; |
result=$((1 + 2)) |
$result = 1 + 2 |
| 計算 | 論理演算子 | result = True and False |
const result = true && false; |
let result = true && false; |
result = True && False |
bool result = true && false; |
bool result = true && false; |
result=$(true && false) |
$result = $true -and $false |
| 大分類 | 小分類 | python | JavaScript | Rust | Haskell | C++ | C# | bash | PowerShell |
|---|---|---|---|---|---|---|---|---|---|
| 比較演算子 | 等価 | result = 1 == 2 |
const result = 1 == 2; |
let result = 1 == 2; |
result = 1 == 2 |
bool result = 1 == 2; |
bool result = 1 == 2; |
result=$((1 == 2)) |
$result = 1 -eq 2 |
| 比較演算子 | 不等価 | result = 1 != 2 |
const result = 1 != 2; |
let result = 1 != 2; |
result = 1 /= 2 |
bool result = 1 != 2; |
bool result = 1 != 2; |
result=$((1 != 2)) |
$result = 1 -ne 2 |
| 比較演算子 | 大小比較 | result = 1 < 2 |
const result = 1 < 2; |
let result = 1 < 2; |
result = 1 < 2 |
bool result = 1 < 2; |
bool result = 1 < 2; |
result=$((1 < 2)) |
$result = 1 -lt 2 |
| 条件分岐 | if 文 |
if a > b:print("a > b")else:print("a <= b")
|
if (a > b) {console.log("a > b");} else {console.log("a <= b");}
|
if a > b {println!("a > b");} else {println!("a <= b");}
|
if a > b thenputStrLn "a > b"elseputStrLn "a <= b"
|
if (a > b) {std::cout << "a > b" << std::endl;} else {std::cout << "a <= b" << std::endl;}
|
if (a > b){Console.WriteLine("a > b");}else{Console.WriteLine("a <= b");}
|
if [ $a -gt $b ]; thenecho "a > b"elseecho "a <= b"fi
|
if ($a -gt $b) {Write-Host "a > b"} else {Write-Host "a <= b"}
|
| 大分類 | 小分類 | python | JavaScript | Rust | Haskell | C++ | C# | bash | PowerShell |
|---|---|---|---|---|---|---|---|---|---|
| 繰り返し | for 文 |
for i in range(5):print(i)
|
for (let i = 0; i < 5; i++) {console.log(i);}
|
for i in 0..5 {println!("{}", i);}
|
forM_ [0..4] $ \i ->print i
|
for (int i = 0; i < 5; i++) {std::cout << i << std::endl;}
|
for (int i = 0; i < 5; i++){Console.WriteLine(i);}
|
for i in {0..4}; doecho $idone
|
for ($i = 0; $i-lt 5; $i++) {Write-Host $i}
|
| 繰り返し | while 文 |
i = 0while i < 5:i += 1
|
let i = 0while (i < 5) {i++;}
|
let mut i = 0;while i < 5 {i += 1;}
|
i <- 0while (i < 5) $ doi <- i + 1
|
int i = 0;while (i < 5) {i++;}
|
int i = 0;while (i < 5) {i++;}
|
i=0while [ $i -lt 5 ]; do((i++))done
|
$i = 0while ($i -lt 5) {$i++}
|
| 関数 | 関数定義 |
def add(a, b):return a + b
|
function add(a, b) {return a + b;}
|
fn add(a: i32, b: i32) -> i32 {a + b}
|
add a b = a + b |
int add(int a, int b) {return a + b;}
|
int Add(int a, int b){return a + b;}
|
add() {echo $(($1 + $2))}
|
function Add($a, $b) {return $a + $b}
|
| 関数 | 関数呼び出し |
result = add(2, 3)print(result)
|
let result = add(2, 3);console.log(result);}
|
let result = add(2, 3);println!("{}", result);}
|
let result = add 2 3print result
|
int result = add(2, 3);std::cout << result << std::endl;}
|
int result = Add(2, 3);Console.WriteLine(result);}
|
result=$(add 2 3)echo $result
|
$result = Add(2, 3)Write-Host $result
|
| 大分類 | 小分類 | python | JavaScript | Rust | Haskell | C++ | C# | bash | PowerShell |
|---|---|---|---|---|---|---|---|---|---|
| 関数 | 関数の引数 |
def greet(name):return f"Hello, {name}!"
|
function greet(name) {return Hello, ${name}!;}
|
fn greet(name: &str) -> String {format!("Hello, {}!", name)}
|
greet :: String -> Stringgreet name = "Hello, " ++ name ++ "!"
|
std::string greet(std::string name) {return "Hello, " + name + "!";}
|
public static string Greet(string name) {return $"Hello, {name}!";}
|
greet() {echo "Hello, $1!"}
|
function Greet($name) {return "Hello, $name!"}
|
| 関数 | ラムダ関数 | add = lambda x, y: x + y |
const add = (x, y) => x + y; |
let add = |x: i32, y: i32| x + y; |
add = \x y -> x + y |
auto add = [](int x, int y) { return x + y; }; |
Func<int, int, int> add = (x, y) => x + y; |
add() {echo $(($1 + $2))}
|
$add = { param($x, $y) return $x + $y } |
| 関数 | ジェネレータ関数 |
def gen_func():yield 1yield 2yield 3
|
function* gen_func() {yield 1;yield 2;yield 3; }` |
fn gen_func() -> impl Iterator<Item=i32> {vec![1, 2, 3].into_iter()}
|
gen_func = [1, 2, 3] |
std::vector<int> gen_func() {return {1, 2, 3};}
|
IEnumerable<int> GenFunc() {yield return 1;yield return 2;yield return 3; }` |
gen_func() {echo 1echo 2echo 3}
|
function Gen-Func {1, 2, 3}
|
| ファイル | ファイルの読み込み |
with open('file.txt', 'r') as f:content = f.read()
|
fs = require('fs');content = fs.readFileSync('file.txt', 'utf8');}
|
use std::fs;let content = fs::read_to_string("file.txt").unwrap();}
|
content <- readFile "file.txt" |
std::ifstream file("file.txt");std::string content((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());}
|
using (StreamReader sr = new StreamReader("file.txt")){string content = sr.ReadToEnd();}
|
content=$(cat file.txt) |
$content = Get-Content -Path 'file.txt' -Raw}
|
| 大分類 | 小分類 | python | JavaScript | Rust | Haskell | C++ | C# | bash | PowerShell |
|---|---|---|---|---|---|---|---|---|---|
| ファイル | ファイルの書き込み |
with open('file.txt', 'w') as f:f.write('Hello, World!')
|
fs = require('fs');fs.writeFileSync('file.txt', 'Hello, World!', 'utf8');}
|
use std::fs::File;use std::io::Write;let mut file = File::create("file.txt").unwrap();file.write_all(b"Hello, World!").unwrap();}
|
writeFile "file.txt" "Hello, World!" |
std::ofstream file("file.txt");file << "Hello, World!";file.close();}
|
using (StreamWriter sw = new StreamWriter("file.txt")){sw.Write("Hello, World!");}
|
echo 'Hello, World!' > file.txt |
Set-Content -Path 'file.txt' -Value 'Hello, World!'}
|
| リスト | リストの生成 | lst = [1, 2, 3] |
let lst = [1, 2, 3]; |
let lst = vec![1, 2, 3]; |
lst = [1, 2, 3] |
std::vector<int> lst = {1, 2, 3}; |
List<int> lst = new List<int> { 1, 2, 3 }; |
lst=(1 2 3) |
$lst = @(1, 2, 3) |
| リスト | リストの要素追加 | lst.append(4) |
lst.push(4); |
lst.push(4); |
lst = lst ++ [4] |
lst.push_back(4); |
lst.Add(4); |
lst+=("4") |
$lst += 4 |
| リスト | リストの要素削除 | lst.remove(2) |
lst.splice(lst.indexOf(2), 1); |
lst.retain(|&x| x != 2); |
lst = filter (/=2) lst |
lst.erase(std::remove(lst.begin(), lst.end(), 2), lst.end()); |
lst.Remove(2); |
lst=("${lst[@]/2}") |
$lst = $lst -ne 2 |
| 大分類 | 小分類 | python | JavaScript | Rust | Haskell | C++ | C# | bash | PowerShell |
|---|---|---|---|---|---|---|---|---|---|
| リスト | リストの長さ取得 | len([1, 2, 3]) |
[1, 2, 3].length; |
vec![1, 2, 3].len() |
length [1, 2, 3] |
std::vector<int> v = {1, 2, 3};v.size();
|
int[] arr = {1, 2, 3};arr.Length;
|
array=(1 2 3)echo ${#array[@]}
|
@(1, 2, 3).Count |
| リスト | リストのスライス |
my_list = [1, 2, 3, 4, 5] sliced_list = my_list[1:4]
|
const my_list = [1, 2, 3, 4, 5]; const sliced_list = my_list.slice(1, 4);
|
let my_list = vec![1, 2, 3, 4, 5]; let sliced_list = &my_list[1..4];
|
my_list = [1, 2, 3, 4, 5] sliced_list = take 3 (drop 1 my_list)
|
std::vector<int> my_list{1, 2, 3, 4, 5}; std::vector<int> sliced_list(my_list.begin() + 1, my_list.begin() + 4);
|
List<int> my_list = new List<int> {1, 2, 3, 4, 5}; List<int> sliced_list = my_list.GetRange(1, 3);
|
my_list=(1 2 3 4 5) sliced_list=("${my_list[@]:1:3}")
|
$my_list = @(1, 2, 3, 4, 5) $sliced_list = $my_list[1..3]
|
| リスト | ソート |
s=['a','d','c']s.sorted()
|
let numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];numbers.sort((a, b)=>(a - b));
|
let mut numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];numbers.sort();
|
let numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]let sortedNumbers = sort numbers
|
int numbers[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};int n = sizeof(numbers) / sizeof(numbers[0]);std::sort(numbers, numbers + n);
|
int[] numbers = { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5 };Array.Sort(numbers);
|
numbers=(3 1 4 1 5 9 2 6 5 3 5)sorted=($(echo "${numbers[@]}" | tr ' ' '\n' | sort -n))
|
$numbers = 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5$sorted = $numbers | Sort-Object
|
| 文字列 | 文字列の結合 |
s1 = 'hello's2 = 'world's3 = s1 + ' ' + s2
|
let s1 = 'hello';let s2 = 'world';let s3 = s1 + ' ' + s2;
|
let s1 = String::from("hello");let s2 = String::from("world");let s3 = format!("{} {}", s1, s2);
|
s1 = "hello"s2 = "world"s3 = s1 ++ " " ++ s2
|
std::string s1 = "hello";std::string s2 = "world";std::string s3 = s1 + " " + s2;
|
string s1 = "hello";string s2 = "world";string s3 = s1 + " " + s2;
|
s1="hello"s2="world"s3="${s1} ${s2}"
|
$s1 = "hello"$s2 = "world"$s3 = $s1 + " " + $s2
|
| 大分類 | 小分類 | python | JavaScript | Rust | Haskell | C++ | C# | bash | PowerShell |
|---|---|---|---|---|---|---|---|---|---|
| 文字列 | 文字列の分割 |
s = 'a,b,c'lst = s.split(',')
|
let s = 'a,b,c';let lst = s.split(',');
|
let s = "a,b,c";let lst: Vec<&str> = s.split(',').collect();
|
s = "a,b,c"lst = splitOn "," s
|
std::string s = "a,b,c";std::vectorstd::string lst;std::istringstream ss(s);std::string token;while (std::getline(ss, token, ',')) {lst.push_back(token);}
|
string s = "a,b,c";string[] lst = s.Split(',');
|
s="a,b,c"IFS=',' read -ra lst <<< "$s"
|
$s = "a,b,c"$lst = $s -split ','
|
| 文字列 | 文字列長取得 | len("hello") |
"hello".length; |
"hello".len() |
length "hello" |
std::string s = "hello";s.length();
|
"hello".Length; |
echo -n "hello" | wc -c |
("hello").Length |
| 文字列 | 文字列置換 | "hello world".replace("world", "everyone") |
"hello world".replace("world", "everyone"); |
"hello world".replace("world", "everyone") |
substitute "world" "everyone" "hello world" |
std::string s = "hello world";std::replace(s.begin(), s.end(), "world", "everyone");
|
"hello world".Replace("world", "everyone"); |
echo "hello world" | sed 's/world/everyone/' |
"hello world".Replace("world", "everyone") |
| 文字列 | 文字列の大文字化 |
s = "hello"upper_s = s.upper()
|
let s = "hello";let upper_s = s.toUpperCase();
|
let s = "hello".to_string();let upper_s = s.to_uppercase();
|
s = "hello"upper_s = map toUpper s
|
std::string s = "hello";std::transform(s.begin(), s.end(), s.begin(), ::toupper);
|
string s = "hello";string upper_s = s.ToUpper();
|
s="hello"upper_s="${s^^}"
|
$s = "hello"$upper_s = $s.ToUpper()
|
| 大分類 | 小分類 | python | JavaScript | Rust | Haskell | C++ | C# | bash | PowerShell |
|---|---|---|---|---|---|---|---|---|---|
| 文字列 | 文字列の小文字化 |
s = "HELLO"lower_s = s.lower()
|
let s = "HELLO";let lower_s = s.toLowerCase();
|
let s = "HELLO".to_string();let lower_s = s.to_lowercase();
|
s = "HELLO"lower_s = map toLower s
|
std::string s = "HELLO";std::transform(s.begin(), s.end(), s.begin(), ::tolower);
|
string s = "HELLO";string lower_s = s.ToLower();
|
s="HELLO"lower_s="${s,,}"
|
$s = "HELLO"$lower_s = $s.ToLower()
|
| 文字列 | 文字列の検索 |
text = "Hello, World!"index = text.find("World")
|
const text = "Hello, World!";const index = text.indexOf("World");
|
let text = "Hello, World!";let index = text.find("World");
|
text = "Hello, World!"index = Data.List.findIndex "World" text
|
std::string text = "Hello, World!";size_t index = text.find("World");
|
string text = "Hello, World!";int index = text.IndexOf("World");
|
text="Hello, World!"index=$(echo "$text" | grep -b -o "World" | cut -d: -f1)
|
$text = "Hello, World!"$index = $text.IndexOf("World")
|
| 文字列 | 文字列の逆順 |
text = "Hello, World!"reversed_text = text[::-1]
|
const text = "Hello, World!";const reversed_text = text.split("").reverse().join("");
|
let text = "Hello, World!";let reversed_text = text.chars().rev().collect::<String>();
|
text = "Hello, World!"reversed_text = reverse text
|
std::string text = "Hello, World!";std::reverse(text.begin(), text.end());
|
string text = "Hello, World!";char[] charArray = text.ToCharArray();Array.Reverse(charArray);string reversed_text = new string(charArray);
|
text="Hello, World!"reversed_text=$(echo "$text" | rev)
|
$text = "Hello, World!"$reversed_text = -join ($text[-1..-($text.Length)])
|
| 文字列 | 文字列の繰り返し |
text = "abc" repeated_text = text * 3
|
const text = "abc"; const repeated_text = text.repeat(3);
|
let text = "abc"; let repeated_text = text.repeat(3);
|
text = "abc" repeated_text = concat $ replicate 3 text
|
std::string text = "abc"; std::string repeated_text(text, 3);
|
string text = "abc"; string repeated_text = new StringBuilder().Insert(0, text, 3).ToString();
|
text="abc" repeated_text=$(printf "%.0s$text" {1..3})
|
$text = "abc" $repeated_text = $text * 3
|
| 大分類 | 小分類 | python | JavaScript | Rust | Haskell | C++ | C# | bash | PowerShell |
|---|---|---|---|---|---|---|---|---|---|
| 文字列 | 文字列の一部取得 |
text = "abcde" substring = text[1:4]
|
const text = "abcde"; const substring = text.slice(1, 4);
|
let text = "abcde"; let substring = &text[1..4];
|
text = "abcde" substring = take 3 $ drop 1 text
|
std::string text = "abcde"; std::string substring = text.substr(1, 3);
|
string text = "abcde"; string substring = text.Substring(1, 3);
|
text="abcde" substring=${text:1:3}
|
$text = "abcde" $substring = $text.Substring(1, 3)
|
| 文字列 | 文字列の一部置換 |
text = "hello world" replaced_text = text.replace("world", "python")
|
const text = "hello world"; const replaced_text = text.replace("world", "python");
|
let text = String::from("hello world"); let replaced_text = text.replace("world", "python");
|
text = "hello world" replaced_text = replace "world" "python" text
|
std::string text = "hello world"; std::string replaced_text = text; size_t pos = replaced_text.find("world"); if (pos != std::string::npos) { replaced_text.replace(pos, 5, "python"); }
|
string text = "hello world"; string replaced_text = text.Replace("world", "python");
|
text="hello world" replaced_text="${text/world/python}"
|
$text = "hello world" $replaced_text = $text.Replace("world", "python")
|
| 辞書 | 生成 | d = {'a': 1, 'b': 2, 'c': 3} |
let d = {'a': 1, 'b': 2, 'c': 3}; |
let d = [("a", 1), ("b", 2), ("c", 3)].iter().cloned().collect(); |
d = [("a", 1), ("b", 2), ("c", 3)] |
std::map<std::string, int> d = {{"a", 1}, {"b", 2}, {"c", 3}}; |
Dictionary<string, int> d = new Dictionary<string, int> { { "a", 1 }, { "b", 2 }, { "c", 3 } }; |
declare -A d=( ["a"]=1 ["b"]=2 ["c"]=3 ) |
$d = @{ "a" = 1; "b" = 2; "c" = 3 } |
| 辞書 | 要素の取得 | value = d['a'] |
let value = d['a']; |
let value = d.get("a").unwrap(); |
value = lookup "a" d |
int value = d["a"]; |
int value = d["a"]; |
value="${d["a"]}" |
$value = $d["a"] |
| 大分類 | 小分類 | python | JavaScript | Rust | Haskell | C++ | C# | bash | PowerShell |
|---|---|---|---|---|---|---|---|---|---|
| 辞書 | 要素の追加 | d['d'] = 4 |
d['d'] = 4; |
d.insert("d", 4); |
d = insert "d" 4 d |
d.insert(std::pair<std::string, int>("d", 4)); |
d.Add("d", 4); |
d+=( ["d"]=4 ) |
$d.Add("d", 4) |
| 辞書 | 要素の削除 | del d['a'] |
delete d['a']; |
d.remove("a"); |
d = delete "a" d |
d.erase("a"); |
d.Remove("a"); |
unset d["a"] |
$d.Remove("a") |
| エラー処理 | try-except |
try:...except:...
|
try {...} catch (error) {...}
|
match func() {Ok() => {...},Err() => {...},}
|
case func ofLeft e -> ...Right r -> ...
|
try {...} catch (...) {...}
|
try {...} catch (Exception) {...}
|
if command; then...else...fi
|
try {...} catch {...}
|
| 数学 | 乱数生成 |
import randomrandom.randint(1, 10)
|
Math.floor(Math.random() * 10) + 1; |
use rand::Rng;rand::thread_rng().gen_range(1..=10)
|
import System.RandomrandomR (1, 10)
|
#include <random>std::uniform_int_distribution<>(1, 10)(std::default_random_engine())
|
Random rnd = new Random();rnd.Next(1, 11);
|
$((RANDOM % 10) + 1) |
Get-Random -Minimum 1 -Maximum 11 |
| 大分類 | 小分類 | python | JavaScript | Rust | Haskell | C++ | C# | bash | PowerShell |
|---|---|---|---|---|---|---|---|---|---|
| 日付・時刻 | 現在時刻取得 |
import datetimedatetime.datetime.now()
|
new Date(); |
use chrono::Local;Local::now()
|
import Data.Time.ClockgetCurrentTime
|
#include <ctime>std::time(0)
|
DateTime.Now; |
date |
Get-Date |
| 日付・時刻 | 時間差計算 |
from datetime import datetime, timedeltadelta = timedelta(days=1)new_date = datetime.now() + delta
|
const date = new Date();const newDate = new Date(date.getTime() + 86400000);
|
use chrono::{Duration, Utc};let new_date = Utc::now() + Duration::days(1);
|
import Data.Time.Clocknew_date = addUTCTime (60 * 60 * 24) getCurrentTime
|
std::chrono::system_clock::time_point now = std::chrono::system_clock::now();auto new_date = now + std::chrono::hours(24);
|
DateTime now = DateTime.Now;DateTime new_date = now.AddHours(24);
|
new_date=$(date -d "+1 day" +"%Y-%m-%d") |
$now = Get-Date$new_date = $now.AddDays(1)
|
| クラス | クラス定義 |
class Dog:def bark(self):print("Woof!")
|
class Dog {bark() {console.log("Woof!");}}
|
struct Dog;impl Dog {fn bark(&self) {println!("Woof!");}}
|
data Dog = Dogbark :: Dog -> Stringbark _ = "Woof!"
|
class Dog {public:void bark() {std::cout << "Woof!" << std::endl;}};
|
public class Dog{public void Bark(){Console.WriteLine("Woof!");}}
|
# クラスのような構造はシェルスクリプトにはないため、スキップします。 |
class Dog {[void] Bark() {Write-Host "Woof!"}}
|
| クラス | クラスのインスタンス化 |
my_dog = Dog()my_dog.bark()
|
let myDog = new Dog();myDog.bark();}
|
let my_dog = Dog;my_dog.bark();}
|
let myDog = DogputStrLn $ bark myDog
|
Dog myDog;myDog.bark();}
|
Dog myDog = new Dog();myDog.Bark();}
|
# クラスのような構造はシェルスクリプトにはないため、スキップします。 |
$myDog = [Dog]::new();$myDog.Bark();}
|
| 大分類 | 小分類 | python | JavaScript | Rust | Haskell | C++ | C# | bash | PowerShell |
|---|---|---|---|---|---|---|---|---|---|
| モジュール | インポート | import math |
import * as math from 'math'; |
use std::math; |
import Math |
#include <cmath> |
using System.Math; |
source math.sh |
Import-Module Math |
| モジュール | 関数呼び出し | result = math.sqrt(4) |
const result = math.sqrt(4); |
let result = f64::sqrt(4.0); |
result = sqrt 4 |
double result = std::sqrt(4); |
double result = Math.Sqrt(4); |
result=$(sqrt 4) |
$result = [Math]::Sqrt(4) |
| 辞書 | キーのリスト取得 |
d = {'a': 1, 'b': 2}keys = list(d.keys())
|
let d = {'a': 1, 'b': 2};let keys = Object.keys(d);
|
let d = vec![("a", 1), ("b", 2)];let keys = d.iter().map(|(k, \_)| k).collect::<Vec<&str>>();
|
import Data.Maplet d = fromList [("a", 1), ("b", 2)]let keys = keys d
|
std::map<std::string, int> d = {{"a", 1}, {"b", 2}};std::vectorstd::string keys;for (const auto& kvp : d) { keys.push_back(kvp.first); }
|
var d = new Dictionary<string, int> { { "a", 1 }, { "b", 2 } };List<string> keys = d.Keys.ToList();
|
declare -A d=( ["a"]=1 ["b"]=2 )keys=("${!d[@]}")
|
$d = @{"a"=1;"b"=2}$keys = $d.Keys
|
| 辞書 | 値のリスト取得 |
d = {'a': 1, 'b': 2}values = list(d.values())
|
let d = {'a': 1, 'b': 2};let values = Object.values(d);
|
let d = vec![("a", 1), ("b", 2)];let values = d.iter().map(|(\_, v)| v).collect::<Vec<&i32>>();
|
import Data.Maplet d = fromList [("a", 1), ("b", 2)]let values = elems d
|
std::map<std::string, int> d = {{"a", 1}, {"b", 2}};std::vector<int> values;for (const auto& kvp : d) { values.push_back(kvp.second); }
|
var d = new Dictionary<string, int> { { "a", 1 }, { "b", 2 } };List<int> values = d.Values.ToList();
|
declare -A d=( ["a"]=1 ["b"]=2 )values=("${d[@]}")
|
$d = @{"a"=1;"b"=2}$values = $d.Values
|
| 大分類 | 小分類 | python | JavaScript | Rust | Haskell | C++ | C# | bash | PowerShell |
|---|---|---|---|---|---|---|---|---|---|
| 関数 | クロージャ |
def outer(x):def inner(y):return x + yreturn innerf = outer(10)result = f(5)
|
function outer(x) {return function inner(y) {return x + y;};}let f = outer(10);let result = f(5);
|
fn outer(x: i32) -> impl Fn(i32) -> i32 {move |y| x + y}let f = outer(10);let result = f(5);
|
outer :: Int -> Int -> Intouter x = \y -> x + yf = outer 10result = f 5
|
auto outer(int x) {return [x](int y) { return x + y; };}auto f = outer(10);int result = f(5);
|
Func<int, int> Outer(int x) {return y => x + y;}var f = Outer(10);int result = f(5);
|
outer() { x=$1; inner() { y=$1; echo $((x+y)); }; return 0; }f=$(outer 10)result=$(f 5)
|
function Outer($x) {return { param($y) $x + $y };}$f = Outer 10$result = $f.Invoke(5)
|
| 関数 | 関数の戻り値 |
def add(x, y):return x + yresult = add(1, 2)
|
function add(x, y) {return x + y;}let result = add(1, 2);
|
fn add(x: i32, y: i32) -> i32 {x + y}let result = add(1, 2);
|
add :: Int -> Int -> Intadd x y = x + yresult = add 1 2
|
int add(int x, int y) {return x + y;}int result = add(1, 2);
|
int Add(int x, int y) {return x + y;}int result = Add(1, 2);
|
add() { return $(($1 + $2)); }result=$(add 1 2)
|
function Add($x, $y) {return $x + $y;}$result = Add 1 2
|
| 数学 | 平方根の取得 |
import mathsqrt_val = math.sqrt(25)
|
const sqrt_val = Math.sqrt(25); |
use std::f64;let sqrt_val = f64::sqrt(25.0);
|
sqrt_val = sqrt 25 |
double sqrt_val = std::sqrt(25); |
double sqrt_val = Math.Sqrt(25); |
sqrt_val=$(echo "scale=0;sqrt(25)" | bc) |
$sqrt_val = [Math]::Sqrt(25) |
| 数学 | 絶対値の取得 | abs_val = abs(-10) |
const abs_val = Math.abs(-10); |
let abs_val = i32::abs(-10); |
abs_val = abs (-10) |
int abs_val = std::abs(-10); |
int abs_val = Math.Abs(-10); |
abs_val=$(echo "scale=0;(-10)" | bc) |
$abs_val = [Math]::Abs(-10) |
| 大分類 | 小分類 | python | JavaScript | Rust | Haskell | C++ | C# | bash | PowerShell |
|---|---|---|---|---|---|---|---|---|---|
| 数学 | 三角関数の取得 |
import mathsin_val = math.sin(math.radians(30))
|
const sin_val = Math.sin(Math.PI / 6); |
use std::f64;let sin_val = f64::sin(f64::consts::PI / 6.0);
|
sin_val = sin(pi / 6) |
double sin_val = std::sin(M_PI / 6); |
double sin_val = Math.Sin(Math.PI / 6); |
sin_val=$(echo "scale=2;sin(30 * 3.14159/180)" | bc -l) |
$sin_val = [Math]::Sin([Math]::PI / 6) |
| 集合 | 集合の生成 | my_set = {1, 2, 3} |
const mySet = new Set([1, 2, 3]); |
use std::collections::HashSet;let my_set: HashSet<i32> = [1, 2, 3].iter().cloned().collect();
|
mySet = Data.Set.fromList [1, 2, 3] |
std::set<int> my_set = {1, 2, 3}; |
HashSet<int> mySet = new HashSet<int>(){1, 2, 3}; |
my_set=$(echo "1 2 3" | tr ' ' '\n' | sort -u) |
$mySet = [1, 2, 3] -as [System.Collections.Generic.HashSet[int]] |
| 集合 | 要素の追加 | my_set.add(4) |
mySet.add(4); |
my_set.insert(4); |
mySet = Data.Set.insert 4 mySet |
my_set.insert(4); |
mySet.Add(4); |
my_set=$(echo "$my_set"; echo "4") | sort -u |
$mySet.Add(4) |
| 集合 | 要素の削除 | my_set.remove(3) |
mySet.delete(3); |
my_set.remove(&3); |
mySet = Data.Set.delete 3 mySet |
my_set.erase(3); |
mySet.Remove(3); |
my_set=$(echo "$my_set" | grep -v '^3$') |
$mySet.Remove(3) |
| 大分類 | 小分類 | python | JavaScript | Rust | Haskell | C++ | C# | bash | PowerShell |
|---|---|---|---|---|---|---|---|---|---|
| 集合 | 長さ取得 | len(my_set) |
mySet.size; |
my_set.len(); |
Data.Set.size mySet |
my_set.size(); |
mySet.Count; |
my_set_count=$(echo "$my_set" | wc -l) |
$mySet.Count |
| 集合 | 集合の交差 |
set1 = {1, 2, 3}set2 = {2, 3, 4}intersection = set1.intersection(set2)
|
const set1 = new Set([1, 2, 3]);const set2 = new Set([2, 3, 4]);const intersection = new Set([...set1].filter(x => set2.has(x)));
|
use std::collections::HashSet;let set1: HashSet<> = [1, 2, 3].iter().cloned().collect();let set2: HashSet<> = [2, 3, 4].iter().cloned().collect();let intersection: HashSet<> = set1.intersection(&set2).cloned().collect();
|
import qualified Data.Set as Setset1 = Set.fromList [1, 2, 3]set2 = Set.fromList [2, 3, 4]intersection = Set.intersection set1 set2
|
std::set<int> set1{1, 2, 3};std::set<int> set2{2, 3, 4};std::set<int> intersection;std::set_intersection(set1.begin(), set1.end(), set2.begin(), set2.end(), std::inserter(intersection, intersection.begin()));
|
HashSet<int> set1 = new HashSet<int> {1, 2, 3};HashSet<int> set2 = new HashSet<int> {2, 3, 4};set1.IntersectWith(set2);
|
set1=(1 2 3)set2=(2 3 4)intersection=($(comm -12 <(echo "${set1[@]}" | tr ' ' '\n' | sort) <(echo "${set2[@]}" | tr ' ' '\n' | sort)))
|
$set1 = @('1','2','3')$set2 = @('2','3','4')$intersection = $set1 | ? { $set2 -contains $ }
|
| 集合 | 集合の和集合 |
set1 = {1, 2, 3}set2 = {3, 4, 5}union_set = set1.union(set2)
|
const set1 = new Set([1, 2, 3]);const set2 = new Set([3, 4, 5]);const union_set = new Set([...set1, ...set2]);
|
use std::collections::HashSet;let set1: HashSet<> = [1, 2, 3].iter().cloned().collect();let set2: HashSet<> = [3, 4, 5].iter().cloned().collect();let union_set: HashSet<_> = set1.union(&set2).cloned().collect();
|
import Data.Setlet set1 = fromList [1, 2, 3]let set2 = fromList [3, 4, 5]let union_set = set1 union set2
|
std::unordered_set<int> set1 = {1, 2, 3};std::unordered_set<int> set2 = {3, 4, 5};std::unordered_set<int> union_set;std::set_union(set1.begin(), set1.end(), set2.begin(), set2.end(), std::inserter(union_set, union_set.begin()));
|
HashSet<int> set1 = new HashSet<int> {1, 2, 3};HashSet<int> set2 = new HashSet<int> {3, 4, 5};set1.UnionWith(set2);
|
set1=(1 2 3)set2=(3 4 5)union_set=($(echo "${set1[@]}" "${set2[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' '))
|
$set1 = @(1, 2, 3)$set2 = @(3, 4, 5)$union_set = $set1 + $set2 | Sort-Object -Unique
|
| 集合 | 集合の差集合 |
set1 = {1, 2, 3}set2 = {2, 3, 4}difference = set1.difference(set2)
|
const set1 = new Set([1, 2, 3]);const set2 = new Set([2, 3, 4]);const difference = new Set([...set1].filter(x => !set2.has(x)));
|
use std::collections::HashSet;let set1: HashSet<i32> = [1, 2, 3].iter().cloned().collect();let set2: HashSet<i32> = [2, 3, 4].iter().cloned().collect();let difference: HashSet<i32> = set1.difference(&set2).cloned().collect();
|
import Data.Set as Setset1 = Set.fromList [1, 2, 3]set2 = Set.fromList [2, 3, 4]difference = Set.difference set1 set2
|
std::set<int> set1{1, 2, 3};std::set<int> set2{2, 3, 4};std::set<int> difference;std::set_difference(set1.begin(), set1.end(), set2.begin(), set2.end(), std::inserter(difference, difference.begin()));
|
HashSet<int> set1 = new HashSet<int> { 1, 2, 3 };HashSet<int> set2 = new HashSet<int> { 2, 3, 4 };HashSet<int> difference = new HashSet<int>(set1);difference.ExceptWith(set2);
|
set1="1 2 3"set2="2 3 4"difference=$(comm -23 <(echo "$set1" | tr ' ' '\n' | sort) <(echo "$set2" | tr ' ' '\n' | sort) | tr '\n' ' ')
|
$set1 = @(1, 2, 3)$set2 = @(2, 3, 4)$difference = $set1 | Where-Object { -not ($set2 -contains $_) }
|
| 集合 | 集合の部分集合判定 |
A = {1, 2, 3} B = {1, 2} is_subset = B.issubset(A)
|
const A = new Set([1, 2, 3]); const B = new Set([1, 2]); const is_subset = [...B].every(x => A.has(x));
|
use std::collections::HashSet; let A: HashSet<i32> = [1, 2, 3].iter().cloned().collect(); let B: HashSet<i32> = [1, 2].iter().cloned().collect(); let is_subset = B.is_subset(&A);
|
import Data.Set (isSubsetOf, fromList) let A = fromList [1, 2, 3] let B = fromList [1, 2] let is_subset = B isSubsetOf A
|
std::set<int> A{1, 2, 3}; std::set<int> B{1, 2}; bool is_subset = std::includes(A.begin(), A.end(), B.begin(), B.end());
|
HashSet<int> A = new HashSet<int>(){1, 2, 3}; HashSet<int> B = new HashSet<int>(){1, 2}; bool is_subset = B.IsSubsetOf(A);
|
A="1 2 3" B="1 2" is_subset=true for e in $B; do if ! [[ $A =~ $e ]]; then is_subset=false; break; fi; done
|
$A = @{1, 2, 3} $B = @{1, 2} $is_subset = $B.IsSubsetOf($A)
|