印刷フォームを正方形のフォームに巻き付ける 3 つの方法を段階的に説明します。(3つのうち2つの方法は、他の回答ですでに言及されています)
(1)カット&タイプ&ペースト
(+ (square 3) 4)
;;; make sure cursor is at right place (| is cursor)
(+ |(square 3) 4)
;;; mark-sexp and kill-region
(+ | 4)
;;; type the print form and make sure cursor is at right place
(+ (print |) 4)
;;; paste
(+ (print (square 3)) 4)
(2) タイプ&スラーフ
(+ (square 3) 4)
;;; make sure cursor is at right place (| is cursor)
(+ |(square 3) 4)
;;; type the print form and make sure cursor is at right place
(+ (print|) (square 3) 4)
;;; paredit-forward-slurp-sexp
(+ (print (square 3)) 4)
(3)ラップ&タイプ
(+ (square 3) 4)
;;; make sure cursor is at right place (| is cursor)
(+ |(square 3) 4)
;;; paredit-wrap-round
(+ (|(square 3)) 4)
;;; type print
(+ (print (square 3)) 4)
カット&タイプ&ペーストが一番面倒です。これは paredit に依存せず、複雑な外部フォームを複数行形式の複数の内部フォームにラップする場合に一般化するのが最も簡単です。
(let ((x 1))
(moo)
(oink)
(oink))
の中へ
(let ((x 1))
(moo)
(mapc (lambda (x)
(oink)
(oink))
(list 1 2 3)))
mapc-over-lambda フォームを 2 つの oink にラップすることによって。
Type & slurf が最も知られているようです。mapc-over-lambda の場合にも一般化できます。
ラップ & タイプは、最も簡単に入力できます。これをmap-over-lambdaの場合に一般化すると、2つのoinkを選択し、 を押し(
てラップし、ラムダ形式を書き終え、ラムダ形式を選択し、 を押し(
てラップし、mapcと入力すると、CMfを使用できますラムダ形式と型をクロスオーバーします (リスト 1 2 3)。