كيف يمكنني تخزين طرق جافا في قائمة في كلوجر
-
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)
لديه تفاصيل.
لا تنتمي إلى StackOverflow