سؤال

وتعلمت قدرا كبيرا من مخطط من SICP لكن أنا أكثر اهتماما في ثغة المشتركة الآن. وأنا أعلم fold ثغة المشتركة هو reduce، بحجج خاصة للطي اليمين أو اليسار، ولكن ما هو ما يعادل unfold؟ لم يساعد غوغلينغ من ذلك بكثير. في الواقع لدي انطباع ليس هناك تتكشف ؟؟؟

هل كانت مفيدة؟

المحلول

لقد (loop ... collect ...) اللثغة المشتركة. قارن

(loop for x from 1 to 10 collect (* x x))

ومع ه التكافؤ باستخدام unfold:

(unfold (lambda (x) (> x 10))
  (lambda (x) (* x x))
  (lambda (x) (+ x 1))
  1)

في عام، (unfold p f g seed) هو أساسا

(loop for x = seed then (g x) until (p x) collect (f x))

وتحرير: إصلاح الخطأ المطبعي

نصائح أخرى

ووhyperspec ثغة شائعة لا يعرف وظيفة unfold، ولكن من المؤكد أننا نستطيع الكتابة الخاصة بك. في تعريف مخطط يترجم رمز تقريبا للرمز.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top