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


9

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

দয়া করে লিস্পের উপভাষাটি পোস্ট করুন আপনার টিপটি আপনার টিপের সাথে প্রযোজ্য।



1
আপনি কী ভাবেন যে এগুলি স্কিম এবং র‌্যাকেটে গল্ফ করার টিপস থেকে আলাদা হবে ?
অ্যালেক্স এ।

1
আমি আপনার গল্ফ করার আনন্দের জন্য লিন্স্পের একটি ছোট, স্ট্রিপড ডাউন সংস্করণ টিনাইলিস্প ব্যবহার করার পরামর্শ দেব।
ckjbgames

উত্তর:


4

হোয়াইটস্পেস হ্রাস করতে ফাংশনের পরামিতিগুলি অর্ডার করুন

পরিবর্তে

(defun f(a b)(...))
...
(f x(1+ y))

কিছু চেষ্টা করুন

(defun f(b a)(...))
...
(f(1+ y)x)

1

মুদ্রণ পরমাণুর মাধ্যমে বড় বড় অক্ষর সমন্বিত স্ট্রিংগুলি

princপ্রচলিত পাতার মর্মর ফাংশন সংক্ষিপ্ত, এবং পালাবার characers ছাড়া বস্তু প্রিন্ট করবে। আপনি যদি কমন লিস্প চিহ্নগুলি মুদ্রণ করেন, যার সিনাক্স রয়েছে 'symbol-name, এটি আপনাকে কী মুদ্রণ করতে চান তার চারপাশে উদ্ধৃতিগুলির প্রয়োজন থেকে বাঁচায় এবং হোয়াইটস্পেসেও সংরক্ষণ করতে পারে। মনে রাখবেন যে চিহ্নগুলি মুদ্রণ করার সময় সেগুলি মূলধন করা হবে। এছাড়াও, এটি কোনও নতুন লাইন বা কোনও স্থান যুক্ত করে না, তাই আপনার মনমুগ্ধকরণের দরকার নেই।

উদাহরণ স্বরূপ,

(princ'hai)

মুদ্রণ করবে HAI

এবং

(princ'hai)(princ(read))

মুদ্রণ করবে HAI, ইনপুট চাইবে এবং এটিকে আবার মুদ্রণ করবে, উদাহরণস্বরূপ, আপনি হ্যালো টাইপ করলে ফলাফলটি হয়

HAIhellohello

1

ব্যবহার 1+এবং 1-বৃদ্ধি এবং হ্রাস জন্য

পরিবর্তে (+ a 1)বা (- b 1)চেষ্টা (1+ a)বা (1- b)


আমি এটা বুঝতে পারি না। 1+দুটি টোকেন হিসাবে পার্স করা হয় না , 1এবং +? আমি ভেবেছিলাম +1
ফল 7 এ 19


আমি ভেবেছিলাম যে নামগুলি অঙ্ক দিয়ে শুরু করা যায় না?
18:57

@ এসোলংফ্রুট এটি লিস্প ...
ASCII-

1

ব্যবহার করুন loopএবং format, যা printfস্টেরয়েডের মতো । formatপুনরাবৃত্তি এবং শর্তাদি পাশাপাশি রোমান সংখ্যাসমূহ, ইংরেজি সংখ্যা এবং ইংরেজি বহুবচন অন্তর্ভুক্ত। এটি খুব, খুব কুরুচিপূর্ণ এবং খুব কমপ্যাক্ট।


1

শর্তাধীন আউটপুট

জিএনইউ কমন লিস্প

~v^

আপ-এবং-আউট নির্দেশ ~^হিসেবে সবচেয়ে বেশি যে অপারেশন বিন্যাস গত তালিকা আইটেমের পরে বিনষ্ট একটি তালিকা ব্যবহার করা হয়। তবে এটি একটি vসংশোধককে আর্গুমেন্ট গ্রাস করতে ব্যবহার করা যেতে পারে , যদি সেই যুক্তিটি শূন্য হয় তবে এটি সমাপ্ত হয়। এটি উত্পাদিত শূন্যের সাথে আচরণ করার জন্য বিশেষভাবে কার্যকর dotimes

(loop as n from 1 to 10 do(format t"~d~%"n))

(dotimes(n 11)(if(> n 0)(format t"~d~%"n)))

(dotimes(n 11)(format t"~v^~d~%"n n))

format(condition)

প্রথম আর্গুমেন্টের formatমধ্যে একটি t, nilওরফে ()বা কোনও স্ট্রিম হতে পারে। যদি পাস হয়ে যায় তবে এটি tআউটপুট দেয় stdout, যদি nilএটি স্ট্রিং হিসাবে ফর্ম্যাট আউটপুট ফেরত দেয়। এটি শর্তসাপেক্ষে আউটপুট ব্যবহার করা যেতে পারে। উপরের উদাহরণটি সমানভাবে সংক্ষিপ্তভাবে লেখা যেতে পারে:

(dotimes(n 11)(format(> n 0)"~d~%"n))

যদি কোনও মান আউটপুট হয় তবে রিটার্ন মান হবে nil। এ কারণে এটি doলুপের জন্য সমাপ্তি শর্ত হিসাবেও ব্যবহার করা যেতে পারে :

(do((n 11))((<(decf n)1))(format t"~d~%"n))

(do((n 11))((format(>(decf n)0)"~d~%"n)))

~[...~]

শর্তসাপেক্ষ বিন্যাসটি একটি যুক্তি গ্রাস করে, এবং সূচী দ্বারা তালিকা থেকে একটি ফর্ম্যাটিং স্ট্রিং নির্বাচন করে। ~:;শূন্য নয় শূন্যের মধ্যে নির্বাচন করতে একটি সাধারণ ব্যবহারের ক্ষেত্রে ডিফল্ট ফর্ম্যাটর থাকে।

(dotimes(n 11)(format t"~v^~[~r~:;~d~]~%"n(mod n 3)n))

শর্তসাপেক্ষ বিন্যাসগুলিও নেস্ট করা যেতে পারে, এক্ষেত্রে প্রত্যেকে পরিবর্তে একটি যুক্তি গ্রাস করবে।


~&

উপরের প্রতিটি উদাহরণে ~%একটি নতুন লাইন নির্গত করতে ব্যবহৃত হয়। বেশিরভাগ ক্ষেত্রে, এটি আক্ষরিক নিউলাইন দ্বারা প্রতিস্থাপিত হতে পারে। অন্য বিকল্পটি হ'ল ব্যবহার করা ~&, যা আউটপুট কার্সারটি একটি লাইনের প্রারম্ভিক সময়ে না থাকলে কেবলমাত্র একটি এবং যদি একটি নতুন লাইন নির্গত করে তবে এটি এ fresh-line

উভয়ই ~%এবং ~&কোনও vসংশোধক বা ধ্রুবক হিসাবে একটি যুক্তিও নিতে পারে এবং যতগুলি নতুন লাইন তৈরি করে। তারা উভয়ই আনন্দের সাথে একটি নেতিবাচক যুক্তি গ্রহণ করবে, এক্ষেত্রে তারা কিছুই নির্গত করে না।


বাহ্যিক রেফারেন্স

প্রাকটিক্যাল কমন লিস্প
18. কয়েকটি ফর্ম্যাট রেসিপি

কমন লিস্প ল্যাঙ্গুয়েজ, ২ য় সংস্করণ
22.3.3। অক্ষর স্ট্রিমগুলিতে ফর্ম্যাট করা আউটপুট

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