নিমে গল্ফ করার টিপস


11

নিমে গল্ফ করার জন্য আপনার কাছে কোন সাধারণ টিপস রয়েছে ? আমি এমন ধারণাগুলি সন্ধান করছি যা কোড-গল্ফ সমস্যার ক্ষেত্রে প্রয়োগ করা যেতে পারে এবং যা নিমের ক্ষেত্রেও অন্তত কিছুটা নির্দিষ্ট (যেমন "মন্তব্যগুলি সরান" কোনও উত্তর নয়)।

দয়া করে উত্তর প্রতি একটি টিপ পোস্ট করুন।

উত্তর:


7

নমনীয় কল সিনট্যাক্স

কল সিনট্যাক্স ফাংশন করার সময় নিম বেশ নমনীয়। উদাহরণস্বরূপ, এখানে একটি যুক্তি দিয়ে কোনও ফাংশন কল করার কিছু উপায় রয়েছে:

ord(c)
ord c
c.ord

এবং দুটি যুক্তি সহ একটি ফাংশন কল করার উপায়:

max(a,b)
a.max(b)
a.max b

আপনার পরিস্থিতির জন্য সঠিকভাবে কাজ করে এমন গল্ফিয়াস্ট সংস্করণ চয়ন করুন, বিশেষত প্রাধান্য সম্পর্কে। উদাহরণস্বরূপ, তুলনা করুন:

abs(n)+2
n.abs+2
(abs n)+2

উল্টোদিকে:

abs(n+2)
(n+2).abs
abs n+2

মনে রাখবেন যে max a,bএমনকি (কখনও কখনও) কাজ করে।
— তামা

7

futureমডিউলটি ব্যবহার করুন

futureLambdas এবং তালিকা comprehensions: মডিউল দুটি প্রধান বাইট সংরক্ষণ বৈশিষ্ট্য ধারণ করে। ল্যাম্বডাস অত্যন্ত দরকারী।

উদাহরণস্বরূপ, এটি:

proc f(s:any):any=s&", world!"

এটি সংক্ষিপ্ত করা যেতে পারে:

import future
s=>s&", world!"

যা একটি বাইট সংরক্ষণ করে। দ্রষ্টব্য, তবে, সেই ল্যাম্বডাসগুলি প্যারামিটার তালিকার বাইরে ব্যবহার করা যাবে না - সুতরাং আপনার কোডটি পরীক্ষা করতে আপনাকে এই জাতীয় কিছু করতে হবে:

import future
proc test(f: string -> string) = echo f "Hello"
test(s=>s&", world!")

পাশাপাশি, তালিকা বোঝারগুলি futureমডিউলটির সাথে ব্যবহার করা যেতে পারে । উদাহরণস্বরূপ, এই কোডটি @[...]4 টি দ্বারা 100 টিরও কম বিভক্ত সমস্ত স্কোয়ারের একটি সিক ( ) প্রিন্ট করে:

import future
echo lc[x*x|(x<-1..9,x*x mod 4==0),int]

সুন্দর তুলনার জন্য এটি লক্ষ্য করা উচিত যে আপনি কখনও কখনও anyপরিবর্তে ব্যবহার করতে পারেন string(আমি ধরে নিচ্ছি আপনি দীর্ঘতম টাইপটির নামটি বেছে নিয়েছেন) তবে এটি এখনও নির্বিশেষে সংরক্ষণ করে।
— Sp3000

@ Sp3000 আমি জানতাম না আপনি ব্যবহার করতে পারবেন any, টিপটির জন্য ধন্যবাদ! আপনার উত্তর হিসাবে পোস্ট করা উচিত।
— তামার

আরও ভাল তুলনার জন্য আপনি একটি proc(s:any):any=s&", world!"<space>fproc
— বেনামের

6

স্বাক্ষরযুক্ত অপারেটর

Nonnegative পূর্ণসংখ্যার সাথে কাজ করার সময়, কখনও না স্বাক্ষরযুক্ত অপারেটরগুলি ব্যবহার করা ভাল। বিশেষ করে, সম্ভব হলে, ব্যবহার /%এবং %%পরিবর্তে divএবং mod।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.