Exercism ওয়েবসাইটের সাথে সব ইন্টারঅ্যাকশন স্বয়ংক্রিয়ভাবে পরিচালিত হয়। রিপ্রেজেন্টারদের একটিই দায়িত্ব: একটি সলিউশন নিয়ে সেটির একটি রিপ্রেজেন্টেশন রিটার্ন করা। আরও তথ্যের জন্য ভূমিকা দেখুন।
two-fer)।representation.txt ফাইল লিখতে হবে।representation.json ফাইল লিখতে হবে।mapping.json ফাইল লিখতে হবে।প্রতিটি সলিউশনের জন্য ২০ সেকেন্ডের একটি উইন্ডোতে রিপ্রেজেন্টার ১০০% মেশিন রিসোর্স পায়। ২০ সেকেন্ড পর প্রসেসটি থামিয়ে দেওয়া হয় এবং একটি টাইম-আউট রিপোর্ট করে।
টাইম-আউটের সম্ভাবনা কমাতে আমরা আমাদের পারফরম্যান্স বেস্ট প্র্যাকটিসেস ডকুমেন্ট অনুসরণ করার জোর সুপারিশ করি।
representation.txt ফাইলে এক ধরনের ক্যানোনিকাল রিপ্রেজেন্টেশন থাকে। এই রিপ্রেজেন্টেশন নানা রূপ নিতে পারে, তবে সাধারণত এটি একটি AST:
s(:class,
s(:const, nil, :PLACEHOLDER_1), nil,
s(:begin,
s(:def, :PLACEHOLDER_2,
s(:args),
s(:begin,
s(:lvasgn, :PLACEHOLDER_3,
s(:str, "foo")),
s(:lvasgn, :PLACEHOLDER_4,
s(:str, "foo")),
s(:return,
s(:lvar, :PLACEHOLDER_3)))),
s(:def, :PLACEHOLDER_3,
s(:args),
s(:const, nil, :PLACEHOLDER_1))))
রিপ্রেজেন্টেশনটি শুধু (নরমালাইজড) সোর্স কোডও হতে পারে:
class PLACEHOLDER_1
def PLACEHOLDER_2
PLACEHOLDER_3 = "foo"
PLACEHOLDER_4 = "foo"
return PLACEHOLDER_3
end
def PLACEHOLDER_3
PLACEHOLDER_1
end
end
mapping.json ফাইলটি প্লেসহোল্ডারগুলোকে তাদের মূল মানের সাথে ম্যাপ করে:
{
"PLACEHOLDER_1": "TwoFer",
"PLACEHOLDER_2": "two_fer",
"PLACEHOLDER_3": "foo",
"PLACEHOLDER_4": "bar"
}
মনে রাখা গুরুত্বপূর্ণ যে স্কোপ নির্বিশেষে সব অভিন্ন নাম একই প্লেসহোল্ডার দিয়ে প্রতিস্থাপন করতে হবে।
representation.json ফাইলে মেটাডেটা থাকে:
version: রিপ্রেজেন্টারের ভার্সন নম্বর (ডিফল্ট 1)উদাহরণ:
{ "version": 2 }