আমি যখন ডিজাইন কমিটিতে ছিলাম না, তখন আমি গণনা করি যে রেকর্ড সিনট্যাক্সটি তালিকা বাক্য গঠনের সাথে সামঞ্জস্যপূর্ণ হয়েছিল। মডিউল রফতানি সিনট্যাক্সটিও কমা ব্যবহার করে, কেবলমাত্র আসল স্থান যেখানে লেআউটটি ব্যবহৃত হয় তা হ'ল শীর্ষ-স্তরের ঘোষণাগুলি, যেখানে ক্লজ এবং কর-স্বীকৃতি।
যে উপরে, দেওয়া
data Foo = Foo {bar :: Int, baz :: Int}
লেখা
fnord x = x { bar = 4 }
ধনুর্বন্ধনী ব্যতীত বাক্য বাক্য বাক্যগুলির সাথে সংঘাত তৈরি করে এবং লেআউট ব্যবহার করে
fnord x = x
bar = 4
সিনট্যাক্সটি বেশ ভঙ্গুর করে তোলে। ভুল জায়গায় একটি "যেখানে" যুক্ত করুন এবং আপনার কোডের অর্থ সম্পূর্ণ আলাদা something
আপনি যদি হাস্কেলের রেকর্ডগুলির অবস্থার সাথে সন্তুষ্ট না হন (এবং আপনি এটির সাথে একা থাকবেন না), আমি আপনাকে সুপারিশ করি যে আপনি এইচ এলিস্ট বা আঙ্গুর-রেকর্ডের মতো বিস্তৃত টাইপক্লাস হ্যাকারি (এমনকি দ্বিতীয়টি দুটি নয়) হৃদয়ের মূর্ছা জন্য, কিন্তু অত্যধিক শক্তিশালী)
fclabels আপনাকে লেখার অনুমতি দেবে (ইয়ে পয়েন্টফ্রি)
fnord = setL bar 4
পাশাপাশি
getBar = getL bar
এটির শীর্ষে প্রকৃত রাইসন ডি'এত্রে, যা লেবেল রচনা করছে:
data Person = Person { _place :: Place, ... }
data Place = Place { _city :: String, ... }
moveToAmsterdam :: Person -> Person
moveToAmsterdam = setL (city . place) "Amsterdam"