كيف يمكنني تخزين طرق جافا في قائمة في كلوجر

StackOverflow https://stackoverflow.com/questions/1209801

  •  06-07-2019
  •  | 
  •  

سؤال

وأريد أن تبقي قائمة تطبيع وظائف للنص. كيف يمكنني تخزين .toLowercase؟ كنت أفكر في شيء مثل هذا:

(def normalizing-functions (list remove-punctuations .toLowerCase))
هل كانت مفيدة؟

المحلول

ويبدو ان جعل لكم قائمة من الوظائف لتطبيق شيء على أساس منتظم. طريقة جافا ليست واردة وظيفة كلوجر في هذا المعنى وإن كان لها حقا سهلة لاتمامه مثلما تفعل إذا كنت فيها الذهاب الى يطعمه إلى وظيفة خريطة.

#(. tolowercase %)

نصائح أخرى

وبدلا من ابقائها في قائمة التي سيكون لديك لتفريغ وقت لاحق بعض الطريق، وأنه قد يكون من الاسهل مجرد التفاف .toLowerCase في وظيفة كلوجر (تحرير: باستخدام بلدي أو بناء جملة آرثر) ويؤلف مع الوظائف التي ' إعادة تخطط لاستخدام لتطبيع البيانات باستخدام comp:

user=> (defn remove-punctuation [st] ...removing puncutation mechanics...)

user=> (defn lower-case [st]
         (.toLowerCase st))

user=> ((comp remove-punctuation lower-case) "HELLO THERE!")
"hello there"

user=> (defn normalize-data [data]
         ((comp remove-punctuation lower-case) data))

والماكرو memfn وسوف نفعل ذلك بطريقة أكثر قابلية للقراءة.

(def f (memfn toLowerCase))
(f "Hello")

وسيعود "مرحبا". (doc memfn) لديه تفاصيل.

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