使用される標準の L2 ノルム (ユークリッド距離) を一般化するために、Lp ノルム関数を記述しようとしています。L2ノルムをどのように記述したかを考えると、これまでに思いついたものは次のとおりです。
(defn foo [a b p]
(reduce + (map (comp (map #(power a %) p) -) a b)))
ただし、この関数を実装しようとするたびにエラー ClassCastException が発生します。中間コードの一部は、次のコードが提供された、以前に尋ねられたベクトル内の要素を累乗するという質問からのものです。
(defn compute [exp numbers]
(map #(power exp %) numbers))