Lispには、戻り値を作り出すために元々の構造を破壊する関数があります。除く破壊的な関数には対応する非破壊的な関数があるので、基本的には非破壊版を利用しておいたほうが良さそうです。あたりを見ると良いでしょう。CommonLisp2013年9月16日月曜日[D]デザインパターン修行:BuilderパターンBuilderパターンは複雑なオブジェクトの生成を抽象化するデザインパターン。Builderインターフェースオブジェクトの組み立てに使うメソッドを定義するDirectorクラスBuilderのメソッドを適切な順序で使ってオブジェクトを組み立てるConcreteBuilderクラスBuilderで定義したメソッドを実装するBuilderパターンをD言語で書いてみます。