2025-04-06から1日間の記事一覧
1. マクロの定義 2. マクロの呼び出し 3. マクロの中での式の評価 &bodyキーワードの使い方 ,@スプライシングコンマの使い方 macroexpandコマンドでデバッグする Lispのマクロは、プログラムの実行時にプログラム自体を操作するための強力な機能です。マクロ…
コンスセルとリスト 次のコード'(1 2 3)は、Lispのリストを表しています。リストは、Lispで最も基本的なデータ構造の1つであり、要素の順序付きコレクションです。 Lispのリストは、コンスセル(Cons Cell)と呼ばれる構造体で構成されています。 コンスセル…
tag:auto 参考 : https://zenn.dev/cloud_ace/articles/terraform-cli-1-11-0-update Terraform 1.11 の主な変更点 新機能 write-only attributes (書き込み専用属性) がリソースに追加されました terraform test コマンドで -junit-xml オプションが一般提…
関数型プログラミングとは何か? 副作用について サンプルコード 高階プログラミング 関数型プログラミングのメリット バグが少なくなる 数学に近い lispが高い評価を受けていたのは、研究の道具として計算機科学の世界で最も複雑な種類の問題を解くために使…
lispで配列を作成する方法 Lispで配列を作成するには、make-array関数を使用します。例えば、次のようにして3x3の整数配列を作成できます。 (setq my-array (make-array '(3 3) :initial-element 0)) ここで、'(3 3)は配列の寸法を指定し、:initial-element…
Lispのloopコマンドは、反復処理を行うための非常に柔軟なコマンドです。以下は、基本的なloopコマンドの構文です。 (loop [var1 init1 step1] [var2 init2 step2] ... [finally result] body...) ここで、var1、var2などの変数は、反復処理中に使用する変数…
Lispにおいて、連想配列はalist(Association List)と呼ばれます。alistは、リストの要素がキーと値のペアで構成されており、キーに対応する値を返すことができます。 6802418398342392905以下に、alistを使った参照、追記、編集、削除するための構文とサン…
lispのlambda関数の使用方法 Lispのlambda関数は、匿名の関数を定義するために使用されます。これは、他の関数に引数として渡すことができます。 lambda関数は、次のように書式化されます。 (lambda (arg1 arg2 ...) body) ここで、arg1、arg2、...は、引数…
andの使い方 andの短絡評価 orの使い方 lispで「偽」と判定されるもの Lisp言語において、andとorは論理演算子です。以下にそれぞれの使い方を説明します。 andの使い方 andは、引数の全てが真である場合に真を返します。以下は、andの使用例です。 ; x, y, …
lispのif文の使い方 lispのif文の特殊性 lispのprognの使い方 whenとunlessとcond when unless cond lispのif文の使い方 Lispのif文は以下のように使われます。 (if 条件 式1 式2) この式は、条件が真である場合は式1を評価し、条件が偽である場合は式2を評…
cons 構文 サンプルコード 注意点 car car構文 carサンプルコード car注意点 cdr cdr構文 cdrサンプルコード cdr注意点 list list構文 listサンプルコード list注意点 Lispはリスト処理に特化したプログラミング言語であり、cons、car、cdrはリストを操作す…
コードモード データモード Lispには、コードモードとデータモードの2つのモードがあります。これらのモードは、LispのREPL(Read-Eval-Print Loop)で使われることが多く、Lispの開発環境での開発に役立ちます。 コードモード コードモードは、Lispのコード…
グローバル関数 1. 概要: 2. サンプルコード 引数をとらない場合 引数をとる場合 3.命名規則: 4. その他注意事項: ローカル関数 グローバル関数 1. 概要: Lispでは、defunという特別な形式を使って関数を定義します。defunは、関数名、引数、本体といっ…
Lispで変数を定義する 1.defparameter:可変なグローバル変数 2.defvar:不変なグローバル変数 3.let:ローカル変数 データ型 Lispで変数を定義する Lispでは、変数を定義するために「defvar」、「defparameter」、「let」の3つの方法があります。 1.defparamet…
この記事ではlispの開発環境を10秒で完了させる方法について解説します。 ですが、以下の製品がすでにインストールされていることが前提です。 docker docker-compose git LispをDockerコンテナで動かす方法 結論:以下のコマンドを打つだけで開発環境の構築…
IaC化されていないリソースをdriftctlで検知する インストール方法 dockerで動かす brewでインストール サンプル 参考 : https://zenn.dev/gosarami/articles/dd938001eac988e44d11 以下は、綺麗にフォーマットされた文章です。 IaC化されていないリソースを…
複数のAWSリージョンを使うケース ほとんどのクラウドプロバイダは世界中のデータセンタ(リージョン)に対してデプロイができます。 Terraformプロバイダを設定する際には、通常はどれか一つのリージョンを選択します。 例えば、通常は日本のAWSを利用するプ…
アプリケーションがある程度成長したときに、あなたの管理するソフトウェアにはシークレットキーが発生します。 ex) DBのパスワード、APIキー、SSHキー これらの情報は機密データであり、クラッカーから守らなければならない情報です。 この章ではこれらの情…
Terraformにおける環境の分離は、いくつか手段があります。 ワークスペースの分離 ファイルレイアウトによる分離 ワークスペースによる分離は環境間の完全な分離を保証できません。 バックエンドが同じリソースを使用してしまう(AWSであれば同じS3バケット…
Terraformコードスタイル一覧 Terraformのコードフォーマット 各ネストレベルには、2つのスペースのインデントを推奨します。 引数の値はタブを使用して高さを揃えましょう。 引数とブロックの位置 メタ引数の コード検証 ファイル名 コメント リソース命名…
tag:auto Terraform movedブロック 使用方法 想定ケース Terraform移動ブロック 参考 : https://spacelift.io/blog/terraform-moved-block Terraform movedブロック Terraform movedブロックは、バージョン1.1.0以降で導入されたブロックです。 このブロック…
Terraformはapplyを実行するたびに、以前作成したリソースを見つけて更新することができます。 この時、TerraformはState管理と呼ばれる方法でクラウドに存在する自身が管理しているリソースを見つけています。 Terraformステートとは ステートファイルを共…
tag:auto Terraformのインポートブロック インポートブロックの利点 インポートブロックの構文 例:Terraformのインポートブロックを使用してS3バケットをインポートする 参考 : https://spacelift.io/blog/terraform-import-block Terraformのインポートブ…
新しい State Lock を試す State Lock の確認 必要なIAM権限 参考 : https://zenn.dev/terraform_jp/articles/terraform-s3-state-lock Terraform v1.10 から S3 Backend の State Lock に DynamoDB が不要になる Terraform v1.10 から、S3 Backend の設定に…
tag:auto 概要:Ephemeral Resource 変数のオプションにもephemeralを使える 参考 : https://zenn.dev/cloud_ace/articles/91328a88d8d546 概要:Ephemeral Resource Ephemeral Resource で Terraform State ファイルを守る はじめに Terraform では、State フ…
ローカル値の宣言 ローカル変数の呼び出し ローカル値の使い所 Terraform入門(トップに戻る) Terraform入門 参考 : https://developer.hashicorp.com/terraform/language/values/locals ローカル値はモジュール内で繰り返し使用する値に名前を割り当てるこ…
Terraformのoutputsとは 出力値の定義 親モジュールから子モジュールにアクセスする オプション カスタム条件チェック description sensitive Terraform入門(トップに戻る) Terraform入門 参考 : https://developer.hashicorp.com/terraform/language/valu…
変数宣言 変数ブロック デフォルト値 型 Documentation Validationチェック sensitive Terraformがsensitiveな変数を表示するケース Null許可 変数の使用 変数の上書き -varオプションで設定 Variable Definitions (.tfvars) Files TF_VAR_環境変数の定義 Te…
for_each構文とは eachオブジェクトについて Terraform入門(トップに戻る) Terraform入門 参考 : https://developer.hashicorp.com/terraform/language/meta-arguments/for_each for_each構文とは for_eachは、Terraform言語で定義された文法です。モジュ…
terraformのcountの使い方 The count Object countで作成されたオブジェクトを外部から参照する countではなくfor_eachを使うべきとき 問題点 改善案 Terraform入門(トップに戻る) Terraform入門 参考 : https://developer.hashicorp.com/terraform/langua…