ट्रैक
/
Factor
Factor
/
अभ्यास
/
अक्षरों का अध्ययन
अक्षरों का अध्ययन

अक्षरों का अध्ययन

सीखने का अभ्यास

परिचय

Factor में अक्षर पूर्णांक होते हैं, यानी Unicode कोड पॉइंट। इसलिए <, >, = जैसे संख्यात्मक ऑपरेटर आपको सीधे केस-सेंसिटिव क्रम देते हैं। unicode वोकैबुलरी Unicode को समझने वाले प्रेडिकेट और एक अक्षर का केस बदलने की सुविधा जोड़ती है।

अक्षरों के प्रेडिकेट

LETTER?  ( c -- ? )    ! uppercase letter
letter?  ( c -- ? )    ! lowercase letter
Letter?  ( c -- ? )    ! letter, either case
digit?   ( c -- ? )    ! decimal digit
digit>   ( c -- n )    ! the integer value of a digit char
blank?   ( c -- ? )    ! whitespace
USING: unicode ;

CHAR: A LETTER? .    ! => t
CHAR: a letter? .    ! => t
CHAR: 7 digit?  .    ! => t
CHAR: 7 digit>  .    ! => 7

केस बदलना

ch>upper और ch>lower एक अक्षर का केस बदल देते हैं। स्ट्रिंग पर काम करने वाले >upper और >lower इन्हें स्ट्रिंग के हर अक्षर पर लागू करते हैं।

CHAR: a ch>upper .   ! => 65   (which is CHAR: A)
"Hello" >upper .     ! => "HELLO"

capitalize पूरी स्ट्रिंग को लोअरकेस कर देता है और फिर उसके पहले अक्षर को अपरकेस कर देता है। यह एक शब्द का टाइटल केस है:

"hELLO" capitalize .   ! => "Hello"

अक्षर लिटरल

CHAR: A का पार्स होकर A का पूर्णांक कोड पॉइंट बनता है। नाम वाले अक्षरों के लिए space, tab, \n जैसे नाम इस्तेमाल कीजिए:

CHAR: A .        ! => 65
CHAR: space .    ! => 32
CHAR: \n .       ! => 10

सिंबल

जब किसी वर्ड को वैल्यू के बजाय टैग लौटाना हो, मान लीजिए बूलियन के बजाय yes/no/maybe, तो हर टैग को सिंबल के रूप में घोषित कीजिए। सिंबल एक ऐसा वर्ड है जो कॉल किए जाने पर खुद को स्टैक पर रख देता है, और दो सिंबल तभी बराबर माने जाते हैं जब उनका नाम एक ही हो।

USING: kernel ;

SYMBOLS: yes no maybe ;

yes .    ! => yes
yes yes = .    ! => t
yes no = .     ! => f

SYMBOL: name एक सिंबल घोषित करता है; SYMBOLS: a b c ; कई सिंबल घोषित करता है।

निर्देश

हीडी एक युवा Forth Alien है। उसे अपनी मानव वर्णमाला परियोजना पर कुछ काम पूरा करना है, और वह पूछती है कि क्या आप उसकी मदद कर सकते हैं और वे शब्द प्रोग्राम कर सकते हैं जिनकी उसे ज़रूरत होगी।

1. दो अक्षरों की तुलना कीजिए

compare-chars बनाइए। यह दो अक्षर लेता है और इस आधार पर प्रतीक less, greater या equal लौटाता है कि पहला अक्षर दूसरे से छोटा है, बड़ा है या उसके बराबर है। तुलना करते समय बड़े और छोटे अक्षरों के अंतर का ध्यान रखिए।

CHAR: A CHAR: B compare-chars .   ! => less
CHAR: B CHAR: A compare-chars .   ! => greater
CHAR: A CHAR: A compare-chars .   ! => equal
CHAR: A CHAR: a compare-chars .   ! => less

2. अक्षर का आकार ज्ञात कीजिए

हीडी को यह जानना है कि कोई अक्षर "big" (बड़ा अक्षर) है, "small" (छोटा अक्षर) है, या उसका कोई आकार नहीं है। size-of-char बनाइए, जो big, small या no-size लौटाता है।

CHAR: A size-of-char .       ! => big
CHAR: a size-of-char .       ! => small
CHAR: 5 size-of-char .       ! => no-size
CHAR: space size-of-char .   ! => no-size

3. अक्षर का आकार बदलिए

हीडी को कभी-कभी किसी अक्षर को दूसरे आकार में बदलना होता है। change-size-of-char बनाइए। यह एक अक्षर और मनचाहा आकार (big या small) लेता है और उसी के अनुरूप बड़े या छोटे रूप वाला अक्षर लौटाता है।

CHAR: a big change-size-of-char .     ! => 65   (CHAR: A)
CHAR: A small change-size-of-char .   ! => 97   (CHAR: a)

4. अक्षर का प्रकार ज्ञात कीजिए

हीडी को यह भी जानना है कि अक्षर किस प्रकार का है। type-of-char बनाइए, जो ये वैल्यू लौटाता है:

  • alpha: किसी भी अक्षर (बड़े या छोटे) के लिए
  • numeric: किसी दशमलव अंक के लिए
  • space: स्पेस अक्षर के लिए
  • newline: न्यूलाइन अक्षर के लिए
  • unknown: बाकी सब के लिए
CHAR: A type-of-char .       ! => alpha
CHAR: 5 type-of-char .       ! => numeric
CHAR: space type-of-char .   ! => space
CHAR: \n type-of-char .      ! => newline
CHAR: ! type-of-char .       ! => unknown
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Factor Exercism

अक्षरों का अध्ययन शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Factor को 47 कॉन्सेप्ट163 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।