സ്കീം പ്രോഗ്രാമിംഗ് ഭാഷാ ഉദാഹരണം. സ്കീം ഭാഷാ പിന്തുണ. ഡീബഗ്ഗിംഗും പ്രൊഫൈലിംഗും

ഓരോ പ്രോഗ്രാമിംഗ് ഭാഷയ്ക്കും അതിൻ്റേതായ ലക്ഷ്യമുണ്ട്. ചിലത് വെബിന് മികച്ചതാണ്, മറ്റുള്ളവ ഡെസ്ക്ടോപ്പ് ആപ്ലിക്കേഷനുകൾക്ക്, മറ്റുള്ളവർക്ക് ഡാറ്റ സയൻസ് ആവശ്യമാണ്, കൂടാതെ പ്രോഗ്രാമിംഗ് ആരംഭിക്കുന്നതിന് അനുയോജ്യമായ ഭാഷകളുണ്ട്. ലോഗോയെയും സ്‌ക്രാച്ചിനെയും കുറിച്ച് ഞങ്ങൾ ഇതിനകം സംസാരിച്ചിട്ടുണ്ട്, വിദ്യാഭ്യാസത്തിൻ്റെ ഉയർന്ന തലത്തിലേക്ക് മാറാനും സ്‌കീമിലേക്ക് നിങ്ങളെ പരിചയപ്പെടുത്താനുമുള്ള സമയമാണിത്.

സംക്ഷിപ്ത വിവരങ്ങൾ

20-ാം നൂറ്റാണ്ടിൻ്റെ 60-കളുടെ അവസാനത്തിൽ, MIT ശാസ്ത്രജ്ഞരായ ഗൈ സ്റ്റീലും ജെറാൾഡ് സുസ്മാനും ലിസ്പ് ഭാഷയുടെ മറ്റൊരു ഭാഷാഭേദം വികസിപ്പിക്കാൻ തുടങ്ങി. വാക്യഘടനയുടെ സങ്കീർണ്ണതയും അപൂർണ്ണമായി വികസിപ്പിച്ച ഫംഗ്ഷണൽ പ്രോഗ്രാമിംഗ് അൽഗോരിതങ്ങളും ഉൾപ്പെടെയുള്ള അതിൻ്റെ പരിമിതികൾ മാത്രമേ അവർക്ക് ആവശ്യമുള്ളൂ.

തൽഫലമായി, ശാസ്ത്രജ്ഞർ 1980 വരെ പ്രസിദ്ധീകരിച്ച കുറിപ്പുകളുടെ ഒരു മുഴുവൻ ശ്രേണിയും പ്രസിദ്ധീകരിച്ചു, ഇത് ലാംഡ കണക്കുകൂട്ടലുകൾ, വാൽ ആവർത്തനം, ആവർത്തന സമീപനം എന്നിവയുടെ ആശയങ്ങൾ വിവരിച്ചു. പിന്നീട് അവയെ ലാംഡ പേപ്പറുകൾ എന്ന് വിളിക്കുകയും ജനങ്ങളിലേക്ക് ഫംഗ്ഷണൽ പ്രോഗ്രാമിംഗ് ആരംഭിക്കുന്നതിനുള്ള ഉത്തേജകങ്ങളിലൊന്നായി മാറുകയും ചെയ്തു.

വിവരിച്ച ആശയങ്ങളെ അടിസ്ഥാനമാക്കി, സ്കീം ഭാഷ പ്രത്യക്ഷപ്പെട്ടു, അത് ചെറിയ പരിഷ്കാരങ്ങളോടെ ഇന്നും നിലനിൽക്കുന്നു.

വാക്യഘടന

വാക്യഘടന നോക്കുന്നതിന് മുമ്പ്, സ്കീം വിക്കിബുക്ക് വായിക്കാൻ ഞാൻ ശുപാർശ ചെയ്യുന്നു. ഇത് ഇവിടെ ലളിതമാണ് നിർദ്ദിഷ്ട ഉദാഹരണങ്ങൾഫംഗ്‌ഷനുകൾ, കൺസ്ട്രക്‌റ്റുകൾ, കോഡ് എന്നിവ എങ്ങനെയുണ്ടെന്ന് ഇത് കാണിക്കുന്നു. ഒരു വിക്കിബുക്ക് ഉപയോഗിച്ച് നിങ്ങൾ ഒരു സ്കീം മാസ്റ്റർ ആകില്ല, പക്ഷേ അത് ആവശ്യമായി വരാൻ സാധ്യതയില്ല.

    പരാൻതീസിസ്. ഏത് പൂർണ്ണമായ ആവിഷ്കാരവും അവയിൽ അടങ്ങിയിരിക്കണം. ഇത് ആദ്യമായി കോഡ് കാണുന്നവരെ ഭയപ്പെടുത്തുന്നു, പക്ഷേ പിന്നീട് പ്രായോഗികമായി ബുദ്ധിമുട്ടുകൾ ഉണ്ടാക്കുന്നില്ല.

    അധിക സേവന പ്രതീകങ്ങളൊന്നുമില്ല. പരാൻതീസിസുകൾ മതി. അർദ്ധവിരാമം, കോഡിൽ നിന്ന് അഭിപ്രായങ്ങളെ വേർതിരിക്കുന്നു.

    "ആക്ഷൻ-ഒബ്ജക്റ്റ്" തരത്തിലുള്ള ഘടനകളുടെ നിർമ്മാണം. ഒരു പ്രോഗ്രാമിംഗ് ഭാഷയിൽ ഇത് അസാധാരണമായി തോന്നുന്നു, പക്ഷേ വിവർത്തനം ചെയ്യപ്പെടുന്നു സ്വാഭാവിക ഭാഷതികച്ചും മനസ്സിലാക്കാവുന്നതേയുള്ളൂ.

അല്ലെങ്കിൽ, വാക്യഘടനയുടെ കാര്യത്തിൽ - ക്ലാസിക് ലളിതമാക്കിയ ഭാഷപ്രോഗ്രാമിംഗ്. ഫാക്‌ടോറിയൽ കണക്കുകൂട്ടലിൻ്റെ ഒരു ലളിതമായ ഉദാഹരണം നോക്കുക:

(നിർവചിക്കുക (ഘടകാംശം)
(എങ്കിൽ (= n 0)
1
(* n (ഘടകാംശം (- n 1)))))

നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, റെക്കോർഡിംഗ് ഓർഡർ കൂടാതെ വലിയ അളവ്ബ്രാക്കറ്റുകൾ, അസാധാരണമായ ഒന്നും.

എവിടെയാണ് ഇത് ഉപയോഗിക്കുന്നത്?

അമേരിക്കൻ സ്കൂളുകളിലും യൂണിവേഴ്സിറ്റികളിലും ഈ സ്കീം പഠിക്കുന്നു. അതിൻ്റെ സഹായത്തോടെ, നടപടിക്രമപരവും പ്രവർത്തനപരവുമായ പ്രോഗ്രാമിംഗിൻ്റെ അടിസ്ഥാനകാര്യങ്ങൾ വിദ്യാർത്ഥികൾ പഠിക്കുന്നു. മറ്റാരുമല്ല അടിസ്ഥാന ഭാഷനിങ്ങൾക്ക് ഈ തന്ത്രം ചെയ്യാൻ കഴിയില്ല.

എന്നാൽ പഠനത്തിനു ശേഷമുള്ള ജീവിതത്തിൽ സ്കീം ഇല്ല നിർദ്ദിഷ്ട പ്രദേശംഅപേക്ഷകൾ. ചട്ടം പോലെ, ഇവ വിദ്യാർത്ഥി പ്രോജക്റ്റുകളുടെ തുടർച്ചകളാണ്, ചെറിയ കോഡുകളും ട്രയൽ റിലീസുകളും. അതിൻ്റെ ജനപ്രീതിയില്ലാത്തതിന് നിരവധി കാരണങ്ങളുണ്ട്:

  • വലിയ തുക കോഡ്;
  • ഡീബഗ്ഗിംഗിലും പിശകുകൾ കണ്ടെത്തുന്നതിലും ബുദ്ധിമുട്ട്;
  • അഭാവം പ്രവർത്തനപരമായ നേട്ടങ്ങൾ Common Lisp, Haskell, Clojure മുതലായവയുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ.

പൊതുവേ, പണം സമ്പാദിക്കുക സ്കീം ഭാഷവളരെ പ്രശ്നകരമായ.

എന്നിരുന്നാലും, അറിവ് പ്രായോഗികമായി പ്രയോഗിക്കാൻ ആഗ്രഹിക്കുന്നവർക്ക്, വ്യാഖ്യാതാക്കൾ വികസിപ്പിച്ചെടുത്തിട്ടുണ്ട്: റാക്കറ്റും ബിഗ്ലൂയും. അവ വികസിക്കുന്നു സ്റ്റാൻഡേർഡ് സവിശേഷതകൾവാക്യഘടന ഉൾപ്പെടെയുള്ള സ്കീം, കൂടാതെ തുറന്നതും പുതിയ പ്രവർത്തനം: ദൃശ്യവൽക്കരണം, മെട്രിക്സുകളും അറേകളും ഉപയോഗിച്ച് പ്രവർത്തിക്കുക, മറ്റ് ഭാഷകളുമായുള്ള നേരിട്ടുള്ള ഇടപെടൽ.

സാധ്യതകൾ

സ്കീം വിദ്യാഭ്യാസത്തിൽ മാത്രം കണ്ടെത്തിയിട്ടുണ്ടെങ്കിലും, ഇത് TIOBE റേറ്റിംഗിൻ്റെ മികച്ച 50-ൽ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്. എന്നാൽ ഒരു നെഗറ്റീവ് പ്രവണതയുണ്ട് - ഭാഷയ്ക്ക് എല്ലാ വർഷവും ജനപ്രീതിയുടെ 0.05% നഷ്ടപ്പെടുന്നു. ഫംഗ്ഷണൽ പ്രോഗ്രാമിംഗിന് അനുയോജ്യമായ എതിരാളികളുടെ ആവിർഭാവമാണ് ഇതിന് കാരണം കൂടുതൽ സാധ്യതകൾജീവിതത്തിൽ ഉപയോഗിക്കുന്നതിന്, അതേ സമയം ലളിതവും.

അങ്ങനെ, 5-10 വർഷത്തിനുള്ളിൽ ഭാഷ റഡാറിൽ നിന്ന് അപ്രത്യക്ഷമാകാനുള്ള ഉയർന്ന സാധ്യതയുണ്ട്, ചില സ്ക്രാച്ച് അതിൻ്റെ സ്ഥാനം പിടിക്കും. എന്നാൽ അത് സംഭവിക്കുന്നതിന് മുമ്പ്, സ്കീമിനെ അറിയാൻ നമുക്ക് നമ്മുടെ ജീവിതത്തിൻ്റെ കുറച്ച് മിനിറ്റ് എടുക്കാം. 47 വർഷത്തെ ചരിത്രത്തിൽ അത് അർഹിക്കുന്നു.

പ്രോഗ്രാമിംഗ് പഠിക്കാൻ ഏത് ഭാഷയാണ് തിരഞ്ഞെടുക്കേണ്ടത്?നിങ്ങൾ മധ്യത്തിൽ എവിടെയെങ്കിലും പ്രോഗ്രാമിംഗ് പഠിക്കാൻ തുടങ്ങരുത്.

ആദ്യം നിങ്ങൾ നിങ്ങളുടെ തലച്ചോറിനെ പരിശീലിപ്പിക്കേണ്ടതുണ്ട്, ഒരു പ്രത്യേക ഭാഷയുടെ കഴിവുകൾ അറിഞ്ഞുകൊണ്ട് അൽഗോരിതങ്ങൾ സൃഷ്ടിക്കാനും അവയെ വിവരിക്കാനും ഉള്ള കഴിവ്. ഗാർഹിക സ്കൂളുകളിലും സർവ്വകലാശാലകളിലും അവർ സാധാരണയായി പ്രോഗ്രാമിംഗ് പഠിക്കുന്നു അടിസ്ഥാന ഉദാഹരണംഅല്ലെങ്കിൽ പാസ്കൽ. ഇപ്പോൾ വരെ, പാസ്കലിനെ അതിലൊന്നായി കണക്കാക്കുന്നു മികച്ച ഭാഷകൾപരിശീലനത്തിനായി, ഇത് സ്റ്റാറ്റിക് ടൈപ്പിംഗ് ഉള്ള ഒരു കർശനമായ സംഭാഷണമാണ്, ഇത് കൂടാതെ അനുവദിക്കുന്നു അനാവശ്യ പ്രശ്നങ്ങൾപ്രൊസീജറൽ, ഒബ്ജക്റ്റ് ഓറിയൻ്റഡ് പ്രോഗ്രാമിംഗിൻ്റെ തത്വങ്ങൾ പരിശീലിക്കുക. പക്ഷേ, പ്രമുഖ പാശ്ചാത്യ സർവ്വകലാശാലകളുടെ (ബെർക്ക്‌ലി, സ്റ്റാൻഫോർഡ്, എംഐടി) വിദ്യാഭ്യാസ സാമഗ്രികളുമായി പരിചയമുള്ളതിനാൽ, പ്രവർത്തനക്ഷമമായ ഭാഷകളിലൊന്ന് ഉപയോഗിച്ച് പഠനം ആരംഭിക്കുന്നത് നല്ല ആശയമാണെന്ന് ഞാൻ സമ്മതിക്കുന്നു.

പൊതുവേ, ഇത് തികച്ചും വിചിത്രമാണ്, എന്നാൽ പ്രവർത്തന മാതൃകയെ ഗാർഹിക വിദ്യാഭ്യാസം ധാർഷ്ട്യത്തോടെ അവഗണിക്കുന്നു. ഈ വിടവ് നികത്താൻ, സ്കീം പ്രോഗ്രാമിംഗ് ഭാഷയെക്കുറിച്ച് സംസാരിക്കാൻ ഞാൻ ആഗ്രഹിക്കുന്നു.

സ്കീം വളരെ ലളിതമായ ഒരു പ്രോഗ്രാമിംഗ് ഭാഷയാണ്. ഒരു ദിവസം കൊണ്ട് ഇത് പഠിക്കുന്നത് തികച്ചും സാദ്ധ്യമാണ്, എന്നാൽ ഈ ലാളിത്യം വഞ്ചനാപരമാണ്. സ്കീം രണ്ടും വളരെ ശക്തമായ ഭാഷ. നടപ്പാക്കലുകളുടെ ഒരു വലിയ സംഖ്യയുണ്ട്.

സർട്ടിഫിക്കേഷൻ പ്രോഗ്രാമുകൾ *.scm ഫയലുകളിൽ സംരക്ഷിച്ചിരിക്കുന്നു, അല്ലെങ്കിൽ നിങ്ങൾക്ക് ഉപയോഗിക്കാം സംവേദനാത്മക മോഡ്പൈത്തണിന് സമാനമായ വ്യാഖ്യാതാവ്.

സ്ഥിരാങ്കങ്ങളും വേരിയബിളുകളും

സ്കീമിൻ്റെ അടിസ്ഥാന ഘടനകൾ പഠിക്കാൻ തുടങ്ങാം. ഒന്നാമതായി, നമുക്ക് സ്ഥിരാങ്കങ്ങൾ നിർവചിക്കാം:

123 - പൂർണ്ണസംഖ്യ

3.1415926 - ഫ്രാക്ഷണൽ നമ്പർ

2 + 3i - സങ്കീർണ്ണ സംഖ്യ

2/3 - അംശം

#B1111 - ബൈനറി നമ്പർ

#xFF - ഹെക്സാഡെസിമൽ ലേഖനം

#O123 - അഷ്ടസംഖ്യ

#\A - ഒറ്റ പ്രതീകം

"ഹലോ വേൾഡ്!" - പ്രതീക സ്ട്രിംഗ്

"ഹലോ - ചിഹ്നം

#f - ലോജിക്കൽ മൂല്യം

ഓപ്പറേറ്റർമാരോ ഫംഗ്‌ഷനുകളോ ഉപയോഗിച്ച് കോൺസ്റ്റൻ്റുകൾ പ്രവർത്തിപ്പിക്കാൻ കഴിയും. എല്ലാത്തിനുമുപരി, സ്കീം ആണ് പ്രവർത്തന ഭാഷ, അതിനാൽ ഇതിന് എല്ലാ പ്രവർത്തനങ്ങളും ഉണ്ട്.

ഗണിതശാസ്ത്രത്തിൽ, f (x) അല്ലെങ്കിൽ t (a, b) ഫംഗ്‌ഷനുകൾ എഴുതുന്ന രീതി നിങ്ങൾക്ക് പരിചിതമാണ്. എന്നാൽ അതേ കാര്യം (f x) അല്ലെങ്കിൽ (t a b) എന്ന രൂപത്തിൽ എഴുതാം. സ്കീം ഉപയോഗിക്കുന്ന റെക്കോർഡിംഗിൻ്റെ രൂപമാണിത്. ഇഷ്ടമല്ല ഗണിത പദപ്രയോഗം, അവ ഫോമിൽ എഴുതിയിരിക്കുന്നു, ഉദാഹരണത്തിന് 2 + 3, കൂടാതെ പ്രിഫിക്സിൽ - (+ 2 3).

ഉദാഹരണത്തിന്:

ഗെയ്ൽ> (+ (* 3 4) (/ 5 2))

29/2

ഗെയ്ൽ> (+ 1 1 1 1 1)

വഞ്ചന> (/2)

ഗെയ്ൽ> (ചതുരശ്ര 2)

1.4142135623731

വേരിയബിളുകൾ പ്രഖ്യാപിക്കാൻ, നിർമ്മാണം ഉപയോഗിക്കുക (മൂല്യത്തിൻ്റെ പേര് നിർവചിക്കുക)

ഗൈൽ> (എ 2 നിർവ്വചിക്കുക)

ഗെയ്ൽ> (ബി 2 നിർവചിക്കുക)

ഗെയ്ൽ> (+ a b)

ഇതിനകം നിലവിലുള്ള ഒരു വേരിയബിളിൻ്റെ മൂല്യം കൺസ്ട്രക്‌റ്റ് ഉപയോഗിച്ച് മാറ്റാവുന്നതാണ് (സെറ്റ്! നാമ മൂല്യം)

ഗെയ്ൽ> (സെറ്റ്! എ 5)

guile>a

നിർമ്മാണം (നിർവചിക്കുക (പാരാമീറ്റർ നാമം) ഫംഗ്‌ഷൻ_ടൈപ്പ്) ഉപയോഗിച്ച് ഫംഗ്‌ഷനുകൾ പ്രഖ്യാപിക്കുന്നു

ഗൈൽ> (നിർവചിക്കുക (ചതുരം x) (* x x))

ഗെയ്ൽ> (ചതുരം 3)

ആവർത്തനം കാണിക്കുന്നതിന്, ഫാക്‌ടോറിയൽ കണക്കാക്കുന്നതിനുള്ള ഒരു ഉദാഹരണം ഞാൻ നൽകും:

(നിർവ്വചിക്കുക (വസ്തുത x)

(എങ്കിൽ (= x 1)

(* X (വസ്തുത (- x 1)))))

നിങ്ങൾ ഇതിനകം മനസ്സിലാക്കിയതുപോലെ, നിർമ്മാണം ഉപയോഗിച്ച് ഒരു അവസ്ഥ പരിശോധിക്കാൻ കഴിയും (ഏതെങ്കിലും വിധത്തിൽ വ്യവസ്ഥയുണ്ടെങ്കിൽ)

വിശദാംശങ്ങളിലേക്ക് പോകാതെ, പ്രധാന പ്രവർത്തനങ്ങളിലേക്ക് ഞാൻ ശ്രദ്ധ ആകർഷിക്കും

("ഹലോ, വേൾഡ്!" പ്രദർശിപ്പിക്കുക) - ഒരു സ്ട്രിംഗ് പ്രദർശിപ്പിക്കുക

(ന്യൂലൈൻ) - ഒരു പുതിയ വരിയിലേക്ക് പോകുക

ഡാറ്റാ സെറ്റുകളിൽ പ്രവർത്തിക്കാൻ ലിസ്റ്റുകൾ ഉപയോഗിക്കുന്നത് സൗകര്യപ്രദമാണ്

ഗൈൽ> (സംഖ്യകൾ നിർവചിക്കുക (ലിസ്റ്റ് 1 2 3 4 5 6 7 8 9 10)) - ലിസ്റ്റ് പ്രഖ്യാപിക്കുക

guile> (list-ref nums 0) - നമ്പർ 0 ഉള്ള ഘടകം വായിക്കുക

guile> (കാർ നമ്പറുകൾ) - ആദ്യ ഘടകം വായിക്കുക

guile> (cdr nums) - മറ്റെല്ലാ ഘടകങ്ങളും വായിക്കുക

(2 3 4 5 6 7 8 9 10)

നിങ്ങൾക്ക് എല്ലാ ലിസ്റ്റ് ഘടകങ്ങളും ഒരേസമയം പ്രോസസ്സ് ചെയ്യാൻ കഴിയും

സൃഷ്ടിക്കുക പുതിയ ലിസ്റ്റ്ഓരോ മൂലകത്തിനും ഒരു ഫംഗ്ഷൻ പ്രയോഗിക്കുന്നതിലൂടെ

ഗൈൽ> (മാപ്പ് ചതുര സംഖ്യകൾ)

(1 4 9 16 25 36 49 64 81 100)

ഗൈൽ> (മാപ്പ് (ലാംഡ (x) (* x 3)) സംഖ്യകൾ)

(3 6 9 12 15 18 21 24 27 30)

പേരുകൾ നൽകാതെ തന്നെ ഫംഗ്‌ഷനുകൾ ആവശ്യാനുസരണം പ്രഖ്യാപിക്കാൻ ലാംഡ കൺസ്ട്രക്‌റ്റ് നിങ്ങളെ അനുവദിക്കുന്നു. നിങ്ങൾ പൈത്തണിലാണ് പ്രോഗ്രാം ചെയ്യുന്നതെങ്കിൽ, ഈ നിർമ്മിതികൾ നിങ്ങൾക്ക് ഇതിനകം അറിയാം.

വാസ്തവത്തിൽ, സ്കീമിന് ഉള്ളതുപോലെ ലൂപ്പുകൾ ഇല്ല നിർബന്ധിത ഭാഷകൾ. ഇവിടെ ആവർത്തനവും അതേ ആവശ്യങ്ങൾക്കായി ഉപയോഗിക്കുന്നു. ഉദാഹരണത്തിന്, പട്ടികയിലെ ഉള്ളടക്കങ്ങൾ ഒരു നിരയിൽ പ്രദർശിപ്പിക്കാം

(നിർവചിക്കുക (പ്രിൻ്റ്-ലിസ്റ്റ് ലിസ്റ്റ്)

(അല്ലെങ്കിൽ (അസാധുവാണോ? പട്ടിക))

(ആരംഭിക്കുക (ഡിസ്‌പ്ലേ (കാർ ലിസ്റ്റ്))

(ന്യൂലൈൻ)

(പ്രിൻ്റ്-ലിസ്റ്റ് (cdr lst))))

വാക്യഘടന ഒരെണ്ണം മാത്രം അനുവദിക്കുന്ന നിരവധി ഓപ്പറേറ്ററുകൾ ചേർക്കണമെങ്കിൽ, നിർമ്മാണം (ആരംഭിക്കുക ...) ഉപയോഗിക്കുന്നു.

മറ്റ് പ്രോഗ്രാമിംഗ് ഭാഷകളിൽ നിന്ന് അറിയപ്പെടുന്ന ഫോർ ലൂപ്പ് അനുകരിക്കാൻ ഇനിപ്പറയുന്ന നിർമ്മാണം നിങ്ങളെ അനുവദിക്കുന്നു:

(ലറ്റ് ലൂപ്പ് ((i 1))

(ഡിസ്പ്ലേ ഐ)

(ന്യൂലൈൻ)

(എങ്കിൽ (<= i 10) (loop (+ i 1))))

ഒരു എക്‌സ്‌പ്രഷനിൽ ലോക്കൽ വേരിയബിളുകൾ പ്രഖ്യാപിക്കേണ്ടിവരുമ്പോൾ അല്ലെങ്കിൽ ഒരു നെസ്റ്റഡ് ഫംഗ്‌ഷൻ പ്രഖ്യാപിക്കേണ്ടിവരുമ്പോൾ ലെറ്റ് കൺസ്ട്രക്‌റ്റ് ഉപയോഗിക്കുന്നു. ഈ രീതിയിൽ, മിക്കവാറും എല്ലാ സൈക്കിൾ ഓപ്ഷനുകളും നടപ്പിലാക്കാൻ കഴിയും. ലളിതമായ ഡാറ്റ പോലെ ഫംഗ്‌ഷനുകൾ മറ്റ് ഫംഗ്‌ഷനുകളിലേക്ക് പാരാമീറ്ററുകളായി കൈമാറാൻ കഴിയുമെന്നതിനാൽ, നൊട്ടേഷൻ ചെറുതാക്കാൻ നിങ്ങൾക്ക് എല്ലായ്പ്പോഴും നിങ്ങളുടെ സ്വന്തം ഫംഗ്‌ഷൻ സൃഷ്‌ടിക്കാനാകും. പൊതുവേ, നിങ്ങളുടെ ഇഷ്ടത്തിനനുസരിച്ച് ഭാഷ ഇഷ്ടാനുസൃതമാക്കാൻ സ്കീം നിങ്ങളെ അനുവദിക്കുന്നു. അതിശയകരമാംവിധം വഴക്കമുള്ള ഭാഷ.

ഉദാഹരണത്തിന്, ഒരു നിശ്ചിത ഇൻ്റഗ്രൽ കണക്കാക്കുന്നതിനുള്ള ഫംഗ്ഷൻ നടപ്പിലാക്കുന്നത് നിങ്ങൾക്ക് നൽകാം

(നിർവചിക്കുക (func x)

(നിർവചിക്കുക (ഒരു b e f സംയോജിപ്പിക്കുക)

(തുക 0 നിർവ്വചിക്കുക)

(ലൂപ്പ് അനുവദിക്കുക ((i a))

(എങ്കിൽ (

(സജ്ജീകരിക്കുക! തുക (+ തുക (* (f i) e)))

(ലൂപ്പ് (+ i e)))))

തുക)

(ഡിസ്‌പ്ലേ (0 1 0.01 ഫങ്ക് സംയോജിപ്പിക്കുക))

(ന്യൂലൈൻ)

ഗൈൽ ഔദ്യോഗിക വെബ്സൈറ്റ്

Schemers.org

ബെർക്ക്‌ലി യൂണിവേഴ്‌സിറ്റിയിലെ കമ്പ്യൂട്ടർ പ്രോഗ്രാമുകളുടെ ഘടനയും വ്യാഖ്യാനവും എന്ന കോഴ്‌സിലെ പ്രഭാഷണങ്ങളുടെ വീഡിയോ റെക്കോർഡിംഗുകൾ

പൊതുവേ, സ്കീം ഒരു അക്കാദമിക് ഭാഷയായതിനാൽ, അതിൽ ധാരാളം വിവരങ്ങൾ ഉണ്ട്. അതേ സമയം, ഈ ഭാഷയെക്കുറിച്ചുള്ള അറിവ് മറ്റ് ഭാഷകളിലെ വിവിധ നിർമ്മിതികൾ (ഉദാഹരണത്തിന്, പൈത്തൺ പോലെ) നോക്കാൻ നിങ്ങളെ അനുവദിക്കില്ല.

ആമുഖം

സ്കീം വികസിപ്പിക്കുമ്പോൾ, ഭാഷയുടെ ചാരുതയ്ക്കും ലാളിത്യത്തിനും ഊന്നൽ നൽകി. ഭാഷയുടെ തത്ത്വചിന്ത വളരെ ചുരുങ്ങിയതാണ്. വിവിധ ഉപയോഗപ്രദമായ നിർമ്മിതികളും ഉപകരണങ്ങളും ഒന്നിച്ചുചേർക്കുക എന്നതല്ല ഇതിൻ്റെ ലക്ഷ്യം, പകരം ഭാഷയിൽ പുതിയ സവിശേഷതകൾ ചേർക്കേണ്ട ബലഹീനതകളും പരിമിതികളും നീക്കം ചെയ്യുക എന്നതാണ്. തൽഫലമായി, സ്കീമിൽ ചുരുങ്ങിയത് പ്രാകൃത നിർമ്മിതികൾ അടങ്ങിയിരിക്കുന്നു, അവയിൽ കെട്ടിപ്പടുക്കുന്നതിലൂടെ നിങ്ങൾക്ക് ആവശ്യമുള്ളതെന്തും പ്രകടിപ്പിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. ഒരു ഉദാഹരണമായി, ലൂപ്പുകൾ സംഘടിപ്പിക്കുന്നതിന് ഭാഷ 2 സംവിധാനങ്ങൾ ഉപയോഗിക്കുന്നുവെന്ന് നമുക്ക് ചൂണ്ടിക്കാണിക്കാം:

  1. "അവശിഷ്ടം" അല്ലെങ്കിൽ "വാൽ" ആവർത്തനം വാൽ ആവർത്തനം)
  2. ആവർത്തന സമീപനം (ഇൻ്റർമീഡിയറ്റ് ഫലം സംഭരിക്കുന്നതിന് താൽക്കാലിക വേരിയബിളുകൾ ഉപയോഗിക്കുന്നു).

പ്രത്യേകമായി സ്റ്റാറ്റിക് (ഡൈനാമിക് എന്നതിനുപകരം) വേരിയബിൾ സ്കോപ്പിംഗ്, ടെയിൽ റികർഷൻ്റെ ഒപ്റ്റിമൈസേഷൻ ഉറപ്പാക്കൽ, ബൂളിയൻ ഡാറ്റാ തരങ്ങളെ (പരമ്പരാഗതമായി വിചിത്രമായ T, NIL എന്നിവയ്ക്ക് പകരം #t, #f) പിന്തുണയ്ക്കുന്ന ആദ്യത്തെ Lisp ഭാഷാഭേദമാണ് സ്കീം. നേരിട്ട് പിന്തുണയ്ക്കുന്ന ആദ്യത്തെ ഭാഷകളിൽ ഒന്നായിരുന്നു ഇത് തുടർച്ച(ഇംഗ്ലീഷ്) തുടർച്ചകൾ). R^5RS സ്പെസിഫിക്കേഷൻ മുതൽ, "ശുചിത്വ" രീതിയിൽ വാക്യഘടന രൂപാന്തരം പാറ്റേണുകളെ അടിസ്ഥാനമാക്കി മാക്രോകൾ എഴുതുന്നതിനുള്ള അസാധാരണമാംവിധം ശക്തവും സൗകര്യപ്രദവുമായ മാർഗ്ഗം ഭാഷയ്ക്ക് ലഭിച്ചു. ശുചിത്വ_മാക്രോ). "മാലിന്യ ശേഖരണം" എന്ന പദ്ധതിയും നടപ്പിലാക്കുന്നു. മാലിന്യ ശേഖരണം), അതായത്, ഇനി ഉപയോഗിക്കാത്ത ഒബ്‌ജക്റ്റുകളിൽ നിന്ന് മെമ്മറി സ്വയമേവ റിലീസ് ചെയ്യുക.

ഭാഷ അടിസ്ഥാന ഡാറ്റ ഘടനകളായി ലിസ്റ്റുകളും ഏകമാന ശ്രേണികളും ("വെക്‌ടറുകൾ") ഉപയോഗിക്കുന്നു. പ്രഖ്യാപിത മിനിമലിസത്തിന് അനുസൃതമായി, പേരുള്ള ഫീൽഡുകളും OOP ടൂളുകളും ഉള്ള ഘടനകളെ പിന്തുണയ്ക്കുന്നതിന് (ഇതുവരെ) സ്റ്റാൻഡേർഡ് വാക്യഘടനയില്ല - മിക്ക ഭാഷാ നിർവ്വഹണങ്ങളും റെഡിമെയ്ഡ് മെക്കാനിസങ്ങൾ വാഗ്ദാനം ചെയ്യുന്നുണ്ടെങ്കിലും പ്രോഗ്രാമർക്ക് അവൻ്റെ മുൻഗണന അനുസരിച്ച് ഇതെല്ലാം നടപ്പിലാക്കാൻ കഴിയും. .

ഒരു കൗതുകമെന്ന നിലയിൽ, ഐടിഎസിലെ ഫയൽ നാമങ്ങളുടെ ദൈർഘ്യത്തിലുള്ള നിയന്ത്രണം കാരണം സ്കീമർ ഭാഷയുടെ യഥാർത്ഥ നാമം ഇപ്പോഴത്തേതിലേക്ക് മാറ്റി എന്നത് ശ്രദ്ധിക്കാവുന്നതാണ്.

ഉദാഹരണങ്ങൾ

ലളിതമായ ഗണിത പ്രവർത്തനങ്ങൾ

(+ 2 (* 2 2 ) ) (+ 1 2 3 4 )

ഓരോ ഓപ്പറേഷൻ (അല്ലെങ്കിൽ ഫംഗ്‌ഷൻ) കോളും ഒരു ലിസ്റ്റായി പ്രതിനിധീകരിക്കുന്നു, അതിൽ ഓപ്പറേഷൻ ചിഹ്നം (അത് പ്രധാനമായും ഫംഗ്‌ഷൻ്റെ പേരാണ്) എല്ലായ്പ്പോഴും ആരംഭ സ്ഥാനം വഹിക്കുന്നു.

തരം പ്രവചിക്കുന്നു

(നമ്പർ? 5 ) (നമ്പർ? "ഫൂ" ) (സ്ട്രിംഗ് ? "ഫൂ" )

കൺവെൻഷൻ പ്രകാരം, എല്ലാ പ്രവചനങ്ങളുടെയും പേരുകൾ ചിഹ്നത്തിൽ അവസാനിക്കുന്നുണ്ടോ? .

സമത്വ പരിശോധനകൾ

(eq? "foo" "bar" ) (eq? 5 (+ 2 3 ) ) (eq? (eq? 2 3 ) (eq? 3 4 ) )

പരമ്പരാഗത പുഷ്/പോപ്പ് പ്രവർത്തനങ്ങൾക്ക് മാക്രോകൾ നിർവചിക്കുന്നു

(വാക്യഘടന-നിയമങ്ങൾ നിർവ്വചിക്കുക! (x (കാർ l) ) (സെറ്റ്! l (cdr l) ) x) ) )

ഫംഗ്ഷനുകൾ നിർവചിക്കുന്നു

;; (കാര്യക്ഷമമല്ലാത്ത) ആവർത്തന ശൈലിയിൽ ഫാക്‌ടോറിയൽ(നിർവ്വചിക്കുക (വസ്തുത x) (എങ്കിൽ< x 3 ) x (* (fact (- x 1 ) ) x) ) ) ;; ഫിബൊനാച്ചി ഫംഗ്‌ഷന് - ഇരട്ട ആവർത്തനം ആവശ്യമാണ്(നിർവ്വചിക്കുക (fib n) (cond ((= n 0) 0 ) ((= n 1 ) 1 ) (മറ്റൊരു (+ (fib (- n 1)) (fib (- n 2)) ) ) ;; സാധാരണ സ്കീം ശൈലിയിലുള്ള ലിസ്റ്റ് ഘടകങ്ങളുടെ ആകെത്തുക ;; (ലൂപ്പ് ഹെൽപ്പർ ഫംഗ്‌ഷൻ ഉപയോഗിച്ച് ഒരു ലൂപ്പ് പ്രകടിപ്പിക്കുന്നു ;; ടെയിൽ റിക്കർഷനും അക്യുമുലേറ്റർ വേരിയബിളും)(നിർവ്വചിക്കുക (സം-ലിസ്റ്റ് x) (ലൂപ്പ് അനുവദിക്കുക ((x x) (n 0) ) ((നല്ല? x) n (ലൂപ്പ് (cdr x) (+ (കാർ x) n) ) ) ) (വസ്തുത 14) (fib 10 ) (തുക "(6 6 6 100 ) ) (തുക (മാപ്പ് ഫൈബ് "(1 2 3 4 ))

ഫംഗ്ഷൻ നിർവചനം ഇനിപ്പറയുന്ന പ്രോട്ടോടൈപ്പിന് അനുസൃതമായിരിക്കണം:

(function_name (lambda (argument_list) (function_implementation) നിർവ്വചിക്കുക) ,

പ്രയോഗത്തിൽ ചുരുക്കരൂപം കൂടുതലായി ഉപയോഗിക്കുന്നുണ്ടെങ്കിലും:

(നിർവ്വചിക്കുക (ഫങ്ഷൻ_നെയിം ആർഗ്യുമെൻ്റുകൾ) (ഫംഗ്ഷൻ_ഇംപ്ലിമെൻ്റേഷൻ) ) .

I/O

(എഴുതുക (+ (വായിക്കുക) (വായിക്കുക)))

ലിങ്കുകൾ

റഷ്യൻ ഭാഷാ ലിങ്കുകൾ

ഇംഗ്ലീഷ് ലിങ്കുകൾ

ഇംഗ്ലീഷിലുള്ള പാഠപുസ്തകങ്ങൾ

  • വീഡിയോ പ്രഭാഷണങ്ങൾ "കമ്പ്യൂട്ടർ പ്രോഗ്രാമുകളുടെ ഘടനയും വ്യാഖ്യാനവും", ഹരോൾഡ് ആബെൽസൺ, ജെറാൾഡ് ജെയ് സുസ്മാൻ
  • സ്കീം പ്രോഗ്രാമിംഗ് ലാംഗ്വേജ്, ആർ കെൻ്റ് ഡൈബ്വിഗ്

വിക്കിമീഡിയ ഫൗണ്ടേഷൻ.

2010.

    മറ്റ് നിഘണ്ടുവുകളിൽ "സ്കീം (പ്രോഗ്രാമിംഗ് ഭാഷ)" എന്താണെന്ന് കാണുക:

കമ്പ്യൂട്ടർ പ്രോഗ്രാമുകൾ എഴുതാൻ രൂപകൽപ്പന ചെയ്തിട്ടുള്ള ഒരു ഔപചാരിക ചിഹ്ന സംവിധാനമാണ് പ്രോഗ്രാമിംഗ് ഭാഷ. പ്രോഗ്രാമിംഗ് ഭാഷ, പ്രോഗ്രാമിൻ്റെ രൂപവും പ്രവർത്തനങ്ങളും നിർവചിക്കുന്ന ഒരു കൂട്ടം ലെക്സിക്കൽ, വാക്യഘടന, സെമാൻ്റിക് നിയമങ്ങൾ നിർവചിക്കുന്നു, ... ... വിക്കിപീഡിയ സ്കീം ഭാഷയ്ക്ക് പരമ്പരാഗതമായി ഇമാക്സിന് നല്ല പിന്തുണയുണ്ട്. ഈ ഭാഷയുടെ അനിയന്ത്രിതമായ നിർവ്വഹണങ്ങൾക്കൊപ്പം പ്രവർത്തിക്കാൻ കഴിയുന്ന ഒരു കൂട്ടം പാക്കേജുകളാണ് ഈ പിന്തുണ നൽകുന്നത് (, സ്കീം-മോഡ്, cmuschemeകള്ളൻ ), കൂടാതെ നിർദ്ദിഷ്ട നിർവ്വഹണങ്ങളെ മാത്രം പിന്തുണയ്ക്കുക (, x സ്കീം, ജിഡിഎസ്, തേനീച്ച മോഡ്ഗാംബിറ്റ്

). സാധാരണഗതിയിൽ, എല്ലാ നടപ്പിലാക്കലുകളേയും പിന്തുണയ്ക്കുന്ന പാക്കേജുകളേക്കാൾ കൂടുതൽ സമഗ്രമായതാണ് നടപ്പിലാക്കൽ-നിർദ്ദിഷ്ട പിന്തുണ.

ഈ ലേഖനം സ്‌കീമിലെ പ്രോഗ്രാമിംഗിനെ പിന്തുണയ്ക്കുന്നതിൻ്റെ എല്ലാ പ്രശ്‌നങ്ങളും ഉൾക്കൊള്ളാൻ ശ്രമിക്കുന്നു, കൂടാതെ എല്ലാ നിർവ്വഹണങ്ങൾക്കും പൊതുവായുള്ള കാര്യങ്ങളെക്കുറിച്ച് ആദ്യം സംസാരിക്കുന്നു, അതിനുശേഷം മാത്രമേ ഭാഷയുടെ നിർദ്ദിഷ്ട പതിപ്പുകൾക്കുള്ള പിന്തുണ നടപ്പിലാക്കുന്ന പാക്കേജുകൾ പരിഗണിക്കൂ.

സ്കീം-മോഡ്സ്കീം-മോഡ് ഇമാക്സ് ഡിസ്ട്രിബ്യൂഷനുകൾക്കൊപ്പം നൽകിയത് ഒരു പരിഷ്ക്കരണമാണ്ലിസ്പ്-മോഡ്

  • സ്കീം ഭാഷയിൽ സോഴ്സ് കോഡ് ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്നതിന്. ഈ പാക്കേജ് ഇനിപ്പറയുന്ന പ്രവർത്തനം നടപ്പിലാക്കുന്നു:
  • വാക്യഘടന ഹൈലൈറ്റിംഗ്
  • ഇൻഡൻ്റേഷൻ

ജോടിയാക്കിയ ബ്രാക്കറ്റുകൾ ഹൈലൈറ്റ് ചെയ്യുന്നു സ്കീം ഭാഷയ്ക്ക് പരമ്പരാഗതമായി ഇമാക്സിന് നല്ല പിന്തുണയുണ്ട്. ഈ ഭാഷയുടെ അനിയന്ത്രിതമായ നിർവ്വഹണങ്ങൾക്കൊപ്പം പ്രവർത്തിക്കാൻ കഴിയുന്ന ഒരു കൂട്ടം പാക്കേജുകളാണ് ഈ പിന്തുണ നൽകുന്നത് (അടിത്തട്ടിൽ

ഇമാക്സ് ബഫറിൽ നിന്ന് നേരിട്ട് കോഡ് എക്സിക്യൂട്ട് ചെയ്യുന്നതിനുള്ള ഫംഗ്ഷനുകൾ ചേർത്ത് അതിൻ്റെ പ്രവർത്തനക്ഷമത വർദ്ധിപ്പിക്കുന്ന മറ്റ് നിരവധി പാക്കേജുകൾ സൃഷ്ടിച്ചിട്ടുണ്ട്. കാര്യങ്ങൾ.

സ്‌കീം സോഴ്‌സ് ഫയലുകൾക്കായി സ്റ്റാൻഡേർഡ് എക്‌സ്‌റ്റൻഷനുകൾ ഉപയോഗിക്കുന്ന ഫയലുകൾക്കായി ഈ മോഡ് സ്വയമേവ പ്രവർത്തനക്ഷമമാക്കുന്നു - .scm, .ss മുതലായവ. മറ്റ് ഫയലുകൾക്കായി ഈ മോഡ് പ്രവർത്തനക്ഷമമാക്കാൻ, നിങ്ങളുടെ ഇനീഷ്യലൈസേഷൻ ഫയലിലേക്ക് ഇനിപ്പറയുന്ന കോഡ് ചേർക്കുക (ആവശ്യമുള്ള വിപുലീകരണം ഉപയോഗിച്ച് .scm മാറ്റിസ്ഥാപിക്കുന്നു):

(ആഡ്-ടു-ലിസ്റ്റ് "ഓട്ടോ-മോഡ്-അലിസ്റ്റ്"("\\.scm$" . സ്കീം-മോഡ്))

നിങ്ങൾക്ക് പാക്കേജിൻ്റെ സ്വഭാവം മാറ്റണമെങ്കിൽ, സ്കീം-മോഡ്-ഹുക്ക് വേരിയബിളിലേക്ക് ചേർക്കുമ്പോൾ, ഒരു പ്രത്യേക ബഫറിൽ മോഡ് പ്രവർത്തനക്ഷമമാക്കുമ്പോൾ വിളിക്കപ്പെടുന്ന ഒരു ഫംഗ്ഷനിൽ നിങ്ങൾക്ക് പാരാമീറ്ററുകൾ സജ്ജമാക്കാൻ കഴിയും. കൂടാതെ, സ്റ്റാൻഡേർഡ് കോൺഫിഗറേഷൻ ടൂളുകൾ വഴി ചില പരാമീറ്ററുകൾ സജ്ജമാക്കാൻ കഴിയും. അനുബന്ധ ക്രമീകരണ ഗ്രൂപ്പിനെ സ്കീം എന്ന് വിളിക്കുന്നു.

Cmuscheme സ്കീം-മോഡ്വർഷങ്ങൾക്ക് മുമ്പ് ഒലിൻ ഷിവേഴ്സ് എഴുതിയതാണ്, പക്ഷേ ഇപ്പോഴും പ്രധാന സ്കീം പാക്കേജുകളിൽ ഒന്നാണ്. ഈ പാക്കേജ് സ്കീം ഭാഷാ വ്യാഖ്യാതാക്കളുമായി സംവേദനാത്മക പ്രവർത്തനം നടപ്പിലാക്കുന്നു. പാക്കേജിൻ്റെ കഴിവുകൾ ഉപയോഗിച്ച് ഇൻ്റർപ്രെറ്ററുമായുള്ള ഇടപെടൽ തിരിച്ചറിയുന്നു വരുന്നു, ഇമാക്സിനൊപ്പം ഉൾപ്പെടുത്തിയിട്ടുണ്ട്.

പാക്കേജ് സജ്ജീകരണം

പാക്കേജ് സജ്ജീകരിക്കുന്നത് വളരെ ലളിതമാണ് - നിങ്ങളുടെ ഇനീഷ്യലൈസേഷൻ ഫയലിൽ ഇനിപ്പറയുന്ന കോഡ് സ്ഥാപിക്കുക

(ഓട്ടോലോഡ് "റൺ-സ്കീം "cmuscheme" "ഒരു ഇൻഫീരിയർ സ്കീം പ്രവർത്തിപ്പിക്കുക" t) (setq സ്കീം-പ്രോഗ്രാമിൻ്റെ പേര് "mzscheme" )

നിങ്ങൾ ആദ്യമായി റൺ-സ്കീം ഫംഗ്ഷൻ പ്രവർത്തിപ്പിക്കുമ്പോൾ പാക്കേജ് സ്വയമേവ ലോഡ് ചെയ്യപ്പെടും. ഈ ഉദാഹരണത്തിലെ രണ്ടാമത്തെ വരി സ്കീം ഇൻ്റർപ്രെറ്ററിൻ്റെ പേര് വ്യക്തമാക്കാൻ ഉപയോഗിക്കുന്നു, അത് നിങ്ങൾക്ക് പ്രിയപ്പെട്ട ഭാഷ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കാം. ഈ പാക്കേജിനുള്ള എല്ലാ ക്രമീകരണങ്ങളും cmuscheme കോൺഫിഗറേഷൻ ഗ്രൂപ്പിലൂടെ ഇൻ്ററാക്ടീവ് കോൺഫിഗറേഷനും ലഭ്യമാണ്.

പാക്കേജ് സൃഷ്ടിച്ച ഇൻ്റർപ്രെറ്റർ ബഫർ ഒരു പ്രത്യേക മോഡ് ഉപയോഗിക്കുന്നു - ഇൻഫീരിയർ-സ്കീം-മോഡ്, അത് ഇൻഫീരിയർ-സ്കീം-മോഡ്-ഹുക്ക് ഉപയോഗിച്ച് കോൺഫിഗർ ചെയ്യാവുന്നതാണ്. കൂടാതെ, ഒരു ~/.emacs_SCHEMENAME അല്ലെങ്കിൽ ~/.emacs.d/init_SCHEMENAME.scm ഫയൽ നിലവിലുണ്ടെങ്കിൽ (ഇവിടെ SCHEMENAME എന്നത് വ്യാഖ്യാതാവിൻ്റെ പേരാണ്), വ്യാഖ്യാതാവ് ലോഡുചെയ്‌ത ഉടൻ അവ എക്‌സിക്യൂട്ട് ചെയ്യപ്പെടും.

ഒരു പാക്കേജിനൊപ്പം പ്രവർത്തിക്കുന്നു

പാക്കേജിൻ്റെ പ്രധാന പ്രവർത്തനം റൺ-സ്‌കീം ഫംഗ്‌ഷനാണ്, അത് തിരഞ്ഞെടുത്ത സ്‌കീം ഭാഷാ ഇൻ്റർപ്രെട്ടർ ആരംഭിക്കുകയും ഇമാക്‌സിൽ നിന്ന് പുറത്തുപോകാതെ തന്നെ സംവേദനാത്മക കോഡ് എക്‌സിക്യൂഷൻ അനുവദിക്കുകയും ചെയ്യുന്നു.

അങ്ങനെ ചെയ്യുമ്പോൾ, പാക്കേജ് നിർവചിച്ചിരിക്കുന്ന വ്യത്യസ്‌ത ഫംഗ്‌ഷനുകൾ ഉപയോഗിച്ച് കോഡിൻ്റെ ഏത് ഭാഗമാണ് (ഒരു സമർപ്പിത ബ്ലോക്ക്, ഒരു ഫംഗ്‌ഷൻ നിർവചനം അല്ലെങ്കിൽ ഒരൊറ്റ എക്‌സ്‌പ്രഷൻ) എക്‌സിക്യൂട്ട് ചെയ്യേണ്ടതെന്ന് നിങ്ങൾക്ക് നിയന്ത്രിക്കാനാകും - സ്‌കീം-സെൻഡ്-ഡെഫനിഷൻ ഫംഗ്‌ഷൻ (കീബോർഡ് കുറുക്കുവഴികൾ സി-സി സി-ഇ അല്ലെങ്കിൽ C-M-x) നിർവ്വഹണത്തിനായി നിലവിലെ നിർവചനം വ്യാഖ്യാതാവിന് അയയ്ക്കുന്നു; സ്‌കീം-സെൻഡ്-റീജിയൻ (സി-സി സി-ആർ) ഫംഗ്‌ഷൻ തിരഞ്ഞെടുത്ത ഒരു സോഴ്‌സ് കോഡ് എക്‌സിക്യൂട്ട് ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്നു; കഴ്‌സറിന് മുന്നിലുള്ള എക്‌സ്‌പ്രഷൻ വിലയിരുത്താൻ ഫംഗ്‌ഷൻ സ്‌കീം-സെൻഡ്-ലാസ്റ്റ്-സെക്‌സ് (C-x C-e) ഉപയോഗിക്കുന്നു; കൂടാതെ സ്‌കീം-ലോഡ്-ഫയൽ (സി-സി സി-എൽ) ഫംഗ്‌ഷൻ ഒരു മുഴുവൻ ഫയലും ഇൻ്റർപ്രെറ്ററിലേക്ക് ലോഡ് ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്നു (ഇത് നിലവിലെ ബഫറിൽ നിന്ന് മാത്രമല്ല, ഉപയോക്താവ് വ്യക്തമാക്കിയ ഏത് ഫയലിൽ നിന്നും കോഡ് എക്‌സിക്യൂട്ട് ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്നു).

സ്‌കീം ഇൻ്റർപ്രെറ്റർ *സ്‌കീം* എന്ന പ്രത്യേക ബഫറിൽ പ്രവർത്തിക്കുന്നു, അവിടെ എക്‌സ്‌പ്രഷനുകളും ഫംഗ്‌ഷനുകളും വിലയിരുത്തുന്നതിൻ്റെ ഫലങ്ങളും ഔട്ട്‌പുട്ടാണ്. സോഴ്സ് ടെക്സ്റ്റ് ബഫറിൽ നിന്ന് ഈ ബഫറിലേക്ക് വേഗത്തിൽ മാറുന്നതിന്, ഒരു പ്രത്യേക ഫംഗ്ഷൻ സ്വിച്ച്-ടു-സ്കീം (C-c C-z) ഉണ്ട്. കൂടാതെ, പലപ്പോഴും കോഡ് എക്സിക്യൂട്ട് ചെയ്യാനും ഫലങ്ങൾ കാണാനും ആവശ്യമുള്ളതിനാൽ, എക്സിക്യൂഷനുവേണ്ടി ഇൻ്റർപ്രെറ്ററിന് കോഡ് അയയ്ക്കുന്ന രണ്ട് ഫംഗ്ഷനുകളും പാക്കേജ് നിർവചിക്കുന്നു, കൂടാതെ *സ്കീം* ബഫറിലേക്ക് മാറുകയും ചെയ്യുന്നു - സ്‌കീം-സെൻഡ്-ഡെഫനിഷൻ-ആൻഡ്-ഗോ ( C-c M-e) നിലവിലെ നിർവചനം കണക്കാക്കുന്നതിനും അനുവദിച്ച സോഴ്‌സ് കോഡ് വിലയിരുത്തുന്നതിന് സ്‌കീം-സെൻഡ്-റീജിയൻ-ആൻഡ്-ഗോ (C-c M-r).

മാക്രോകളുമായി പ്രവർത്തിക്കാൻ, പാക്കേജ് സ്‌കീം-എക്‌സ്‌പാൻഡ്-കറൻ്റ്-ഫോം (സി-സി സി-എക്‌സ്) ഫംഗ്‌ഷൻ നൽകുന്നു, ഇത് നിലവിലെ മാക്രോയുടെ നിർവചനം അനുബന്ധ സ്‌കീം കോഡിലേക്ക് വികസിപ്പിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. കോഡ് വിപുലീകരണം വ്യാഖ്യാതാവ് നിർവ്വഹിക്കുകയും *സ്‌കീം* ബഫറിലേക്ക് ഔട്ട്‌പുട്ട് ചെയ്യുകയും ചെയ്യുന്നു. സോഴ്സ് കോഡ് സമാഹരണത്തെ പിന്തുണയ്ക്കുന്ന സ്കീം നടപ്പിലാക്കലുകളിൽ പ്രവർത്തിക്കുമ്പോൾ, ഉപയോക്താവിന് യഥാക്രമം ഫയൽ അല്ലെങ്കിൽ നിലവിലെ നിർവചനം കംപൈൽ ചെയ്യുന്ന സ്കീം-കംപൈൽ-ഫയൽ (C-c C-k), സ്കീം-കംപൈൽ-ഡെഫനിഷൻ (C-c M-c) ഫംഗ്ഷനുകൾ പ്രയോജനപ്പെടുത്താം. .

മുകളിൽ സൂചിപ്പിച്ചതുപോലെ, ഇൻ്റർപ്രെറ്റർ ബഫറിൽ ഒരു പ്രത്യേക മോഡ് ഉണ്ട് - ഇൻഫീരിയർ-സ്കീം-മോഡ്, അതിൽ കോമൻ്റ് മോഡിൻ്റെ എല്ലാ കമാൻഡുകളും ഇനിപ്പറയുന്ന കമാൻഡുകളും പ്രവർത്തിക്കുന്നു. സ്കീം-മോഡ്- സ്കീം-കംപൈൽ-ഫയൽ (സി-സി സി-കെ), സ്കീം-ലോഡ്-ഫയൽ (സി-സി സി-എൽ), സ്കീം-സെൻഡ്-ലാസ്റ്റ്-സെക്സ് (സി-എക്സ് സി-ഇ), സ്കീം-സെൻഡ്-ഡെഫനിഷൻ (സി-എം-എക്സ്).

ക്വാക്ക്

ക്വാക്ക് പാക്കേജ് പാക്കേജിൻ്റെ ഒരു വിപുലീകരണമാണ് സ്കീം-മോഡ്കൂടാതെ ഇനിപ്പറയുന്ന അധിക സവിശേഷതകൾ നടപ്പിലാക്കുന്നു (അവയിൽ പലതും പ്രാഥമികമായി PLT സ്കീമുമായി പ്രവർത്തിക്കുന്നതുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു):

  • ഭാഷ, വ്യാഖ്യാതാവ്, എസ്ആർഎഫ്ഐ ഡോക്യുമെൻ്റേഷൻ എന്നിവ ആക്സസ് ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്ന മെനുകൾ, അതുപോലെ നിലവിലെ കഴ്സർ സ്ഥാനത്ത് സ്ഥിതിചെയ്യുന്ന ഫംഗ്ഷൻ നാമത്തിൻ്റെ വിവരണം തിരയാനുള്ള കഴിവ്;
  • പുതിയ ബാക്ക്ലൈറ്റ് കിറ്റുകൾ ഫോണ്ട്-ലോക്ക്- PLT സ്കീമിനും വിപുലീകരിച്ചതും, മറ്റ് നടപ്പാക്കലുകൾക്കായി;
  • ഒരു ഗ്രീക്ക് ചിഹ്നം ഉപയോഗിക്കാനുള്ള സാധ്യത ലാംഡലാംഡ പദപ്രയോഗങ്ങൾ സൂചിപ്പിക്കാൻ (ഉദാഹരണങ്ങൾ ചുവടെ നൽകിയിരിക്കുന്നു);
  • ശരിയായ ഓപ്പണിംഗ്, ക്ലോസിംഗ് പരാൻതീസിസുകൾ ചേർക്കുന്നതിനുള്ള അധിക ഓപ്ഷനുകളും കമാൻഡുകളും;
  • വ്യത്യസ്ത സ്കീം ഇൻ്റർപ്രെട്ടറുകൾക്കായി കോൺഫിഗർ ചെയ്യാനുള്ള കഴിവുള്ള ഇൻഡൻ്റേഷൻ നിയമങ്ങൾക്കായുള്ള വിപുലീകരണങ്ങൾ;
  • റൺ-സ്കീം കമാൻഡിൻ്റെ ഒരു വിപുലീകൃത പതിപ്പ്, അത് ജനപ്രിയ സ്കീം ഇൻ്റർപ്രെറ്ററുകളുടെ കമാൻഡ് നാമങ്ങൾ അറിയുകയും ഇൻ്റർപ്രെറ്ററിൻ്റെ അവസാന പ്രവർത്തിക്കുന്ന പതിപ്പ് ഓർമ്മിക്കുകയും ചെയ്യുന്നു;
  • സ്വിച്ച്-ടു-സ്കീം കമാൻഡിൻ്റെ വിപുലീകൃത പതിപ്പ്;
  • ഒരു ബഫർ തുറക്കുന്നതിനുള്ള .plt ശേഖരണങ്ങളുടെയും കമാൻഡുകളുടെയും ഉള്ളടക്കങ്ങൾ കാണാനുള്ള കഴിവ് മടുത്തുആവശ്യമുള്ള ശേഖരത്തിനായി.

ഇൻസ്റ്റലേഷനും കോൺഫിഗറേഷനും

നീൽ വാൻ ഡൈക്ക് എഴുതിയ പാക്കേജ് രചയിതാവിൻ്റെ വെബ്സൈറ്റിൽ നിന്ന് ഡൗൺലോഡ് ചെയ്യാൻ ലഭ്യമാണ്. Emacs-ന് കണ്ടെത്താനാകുന്ന ഒരു ഡയറക്‌ടറിയിലേക്ക് അത് പകർത്തി, കമാൻഡ് ഉപയോഗിച്ച് ലോഡ് ചെയ്‌ത് പാക്കേജ് ഇൻസ്റ്റാളുചെയ്‌തു:

("ക്വാക്ക്" ആവശ്യമാണ്)

എല്ലാ പാക്കേജ് ക്രമീകരണങ്ങളും ക്വാക്ക് സെറ്റിംഗ്സ് ഗ്രൂപ്പ് ഉപയോഗിച്ചോ ക്വാക്ക് മെനു ഉപയോഗിച്ചോ കോൺഫിഗർ ചെയ്യാവുന്നതാണ്. ഈ ക്രമീകരണങ്ങളിൽ മാനുവലുകളുടെയും എസ്ആർഎഫ്ഐകളുടെയും വിലാസങ്ങൾ ഉൾപ്പെടുന്നു, പാക്കേജ് ഉപയോഗിക്കുന്ന പ്രിഫിക്സ് കീബോർഡ് കുറുക്കുവഴി നിർവചിക്കുന്നത് മുതലായവ.

PLT സ്കീം ഉപയോക്താക്കൾക്ക് പ്രോജക്റ്റ് വെബ്‌സൈറ്റിൽ നിന്ന് ഈ ഇൻ്റർപ്രെറ്ററിനായുള്ള മാനുവലുകൾ ഡൗൺലോഡ് ചെയ്ത് ശേഖരത്തിൽ ഇൻസ്റ്റാൾ ചെയ്യാൻ ശുപാർശ ചെയ്യുന്നു. ഡോക്. PLT സ്‌കീം കളക്ഷനുകളുടെ സ്ഥാനം നിർണ്ണയിക്കുന്നത് ഒന്നുകിൽ quack-pltcollect-dirs വേരിയബിളാണ്, അതിന് പ്രവർത്തന ശേഖരങ്ങളുള്ള എല്ലാ ഡയറക്‌ടറികളും ലിസ്റ്റുചെയ്യാനാകും, അല്ലെങ്കിൽ PLTHOME കൂടാതെ/അല്ലെങ്കിൽ PLTCOLLECTS പരിസ്ഥിതി വേരിയബിളുകൾ.

പാക്കേജിന് wget പ്രോഗ്രാമിൻ്റെ സാന്നിധ്യവും ആവശ്യമാണ്, അത് SRFI ആക്സസ് ചെയ്യാൻ ഉപയോഗിക്കും.

ഒരു പാക്കേജിനൊപ്പം പ്രവർത്തിക്കുന്നു

പാക്കേജ് ഡൌൺലോഡ് ചെയ്ത ശേഷം, ഫംഗ്ഷനുകൾക്ക് പുറമേ സ്കീം-മോഡ്ഒപ്പം സ്കീം ഭാഷയ്ക്ക് പരമ്പരാഗതമായി ഇമാക്സിന് നല്ല പിന്തുണയുണ്ട്. ഈ ഭാഷയുടെ അനിയന്ത്രിതമായ നിർവ്വഹണങ്ങൾക്കൊപ്പം പ്രവർത്തിക്കാൻ കഴിയുന്ന ഒരു കൂട്ടം പാക്കേജുകളാണ് ഈ പിന്തുണ നൽകുന്നത് (പാക്കേജ് നിർവചിച്ചിരിക്കുന്ന പ്രവർത്തനങ്ങൾ ലഭ്യമാകും. സ്റ്റാൻഡേർഡ് മെക്കാനിസങ്ങൾ ഉപയോഗിച്ചോ (കീബോർഡ് കുറുക്കുവഴികൾ കൂടാതെ/അല്ലെങ്കിൽ ഫംഗ്‌ഷൻ നാമമനുസരിച്ച് സമാരംഭിക്കുക) അല്ലെങ്കിൽ ക്വാക്ക് മെനു ഉപയോഗിച്ചോ ഉപയോക്താവിന് ഈ പ്രവർത്തനങ്ങൾ നിർവഹിക്കാൻ കഴിയും.

നിരവധി ഫംഗ്ഷനുകൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഡോക്യുമെൻ്റേഷൻ കാണാൻ കഴിയും. ഒരു വെബ് ബ്രൗസറിൽ ഡോക്യുമെൻ്റേഷൻ കാണുന്നതിന് ക്വാക്ക്-വ്യൂ-മാനുവൽ (C-c C-q m) ഫംഗ്‌ഷൻ ഉപയോഗിക്കുന്നു. സ്കീം ഭാഷയ്ക്കുള്ള അടിസ്ഥാന ഡോക്യുമെൻ്റേഷനും നിർദ്ദിഷ്ട നടപ്പാക്കലുകൾക്കുള്ള ഡോക്യുമെൻ്റേഷനും കാണാൻ ഈ കമാൻഡ് നിങ്ങളെ അനുവദിക്കുന്നു. SRFI കാണുന്നതിന്, ഒരു പ്രത്യേക കമാൻഡ് നിർവചിച്ചിരിക്കുന്നു - quack-view-srfi (C-c C-q s), അത് ആവശ്യമുള്ള പ്രമാണത്തിൻ്റെ നമ്പർ അഭ്യർത്ഥിക്കുകയും ബ്രൗസറിൽ തുറക്കുകയും ചെയ്യുന്നു. കൂടാതെ PLT സ്കീം ഉപയോക്താക്കൾക്ക്, quack-view-keyword-docs (C-c C-q k) കമാൻഡും ലഭ്യമാണ്, ഇത് നൽകിയിരിക്കുന്ന കീവേഡിനുള്ള ഡോക്യുമെൻ്റേഷൻ പ്രദർശിപ്പിക്കുന്നു ( ഈ കമാൻഡിൻ്റെ പ്രവർത്തനം PLT സ്കീം ഡോക്യുമെൻ്റേഷൻ്റെ ശരിയായ ഇൻസ്റ്റാളേഷനെ ആശ്രയിച്ചിരിക്കുന്നു).

മുകളിൽ സൂചിപ്പിച്ചതുപോലെ, പാക്കേജ് റൺ-സ്‌കീം ഫംഗ്‌ഷൻ (C-c C-q r) നടപ്പിലാക്കുന്നു, ഇത് സ്‌കീം ലാംഗ്വേജ് ഇൻ്റർപ്രെറ്ററുകൾ സമാരംഭിക്കുന്നതിനും അറിയപ്പെടുന്നവയുടെ ഒരു ലിസ്റ്റിൽ നിന്ന് അവ തിരഞ്ഞെടുക്കുന്നതിനും (ആവശ്യമായ ഓപ്‌ഷനുകൾക്കൊപ്പം ലോഞ്ച് ചെയ്യുന്നത് ഉൾപ്പെടെ) നിങ്ങളെ അനുവദിക്കുന്നു, കൂടാതെ ഉപയോക്താവിൻ്റെ അവസാനത്തേത് ഓർമ്മിക്കുകയും ചെയ്യുന്നു. തിരഞ്ഞെടുപ്പ്.

പിഎൽടി സ്കീം ഉപയോക്താക്കൾക്ക് ശേഖരങ്ങളുമായി പ്രവർത്തിക്കുന്നതിനുള്ള സൗകര്യപ്രദമായ പ്രവർത്തനങ്ങളും നിർവ്വചിച്ചിരിക്കുന്നു. quack-find-file (C-c C-q f) ഫംഗ്ഷൻ ഒരു ഫയൽ തുറക്കുന്നു, ഫയലിൻ്റെ പേര് ലഭിക്കുന്നതിന് നിലവിലെ സന്ദർഭത്തിൽ നിന്നുള്ള ഡാറ്റ ഉപയോഗിച്ച്. ഉദാഹരണത്തിന്, കഴ്‌സർ കോഡിലായിരിക്കുമ്പോൾ നിങ്ങൾ ഈ ഫംഗ്‌ഷൻ ഉപയോഗിക്കുകയാണെങ്കിൽ (ആവശ്യമാണ് (lib "list.ss")) അപ്പോൾ ശേഖരത്തിൽ നിന്ന് list.ss ഫയൽ തുറക്കാൻ നിങ്ങളോട് ആവശ്യപ്പെടും. mzlib. കൂടാതെ, quack-dired-pltcollect ഫംഗ്ഷൻ നിർവചിച്ചിരിക്കുന്നു, ഇത് ഒരു ബഫർ തുറക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു മടുത്തുആവശ്യമുള്ള PLT സ്കീം ശേഖരണത്തിനായി (ഒരു പേര് വ്യക്തമാക്കുമ്പോൾ, ഉപയോക്താവിന് ശേഖരണത്തിൻ്റെ പേര് സ്വയമേവ പൂർത്തിയാക്കാൻ ഉപയോഗിക്കാം).

കോഡിൻ്റെ ഫോർമാറ്റിംഗ് മാറ്റുന്ന നിരവധി ഫംഗ്ഷനുകളും ഈ പാക്കേജ് നടപ്പിലാക്കുന്നു, ഇത് ഉപയോഗിക്കാൻ കൂടുതൽ സൗകര്യപ്രദമാക്കുന്നു. quack-tidy-buffer (C-c C-q t) ഫംഗ്‌ഷൻ കോഡ് റീ-ഇൻഡൻ്റ് ചെയ്യുന്നു, ടാബുകളെ സ്‌പെയ്‌സുകൾ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നു, അധിക ബ്ലാങ്ക് ലൈനുകൾ നീക്കംചെയ്യുന്നു, ലൈനുകളിൽ നിന്ന് പിന്നിലുള്ള വൈറ്റ്‌സ്‌പെയ്‌സ് നീക്കംചെയ്യുന്നു, കൂടാതെ ഫയലിൻ്റെ അവസാനത്തിൽ ഒന്നുമില്ലെങ്കിൽ ഒരു പുതിയ ലൈൻ ചേർക്കുന്നു. ക്വാക്ക്-ടോഗിൾ-ലാംഡ ഫംഗ്‌ഷൻ (C-c C-q l) നിലവിലെ ഫംഗ്‌ഷൻ്റെ പ്രഖ്യാപനത്തെ (define (func args) ...) എന്നതിൽ നിന്ന് (define func (lambda (args) ..)) എന്നതിലേക്ക് മാറ്റുന്നു, ഇത് ലാംഡ ചിഹ്നത്തെ അനുവദിക്കുന്നു കോഡിൽ കാണിക്കും (ഈ ചിഹ്നം പ്രദർശിപ്പിക്കുന്നതിനുള്ള ഓപ്ഷനുകൾ പ്രവർത്തനക്ഷമമാക്കുമ്പോൾ). ഉദാഹരണത്തിന്, ഇതുപോലെ:

GCA പാക്കേജ്

ജി.സി.എ.— സ്കീം സോഴ്സ് കോഡുമായി ഫലപ്രദമായി പ്രവർത്തിക്കാൻ രൂപകൽപ്പന ചെയ്ത ഒരു പാക്കേജ്. ഗൗഷെ സ്കീമിനെ പിന്തുണയ്ക്കുന്നതിനാണ് ഇത് രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്, എന്നാൽ മറ്റ് ഭാഷകളോടൊപ്പം ഉപയോഗിക്കാം. ഇഷ്ടപ്പെടുക cmuscheme, ഇത് പാക്കേജിൻ്റെ പ്രവർത്തനക്ഷമത വർദ്ധിപ്പിക്കുന്നു സ്കീം-മോഡ്.

ഈ പാക്കേജിന് ഇനിപ്പറയുന്ന സവിശേഷതകൾ ഉണ്ട്:

  • ടെംപ്ലേറ്റ് മെക്കാനിസം ഉപയോഗിച്ച് കോഡിൻ്റെ ഭാഗങ്ങൾ ചേർക്കുന്നു
  • പ്രവർത്തനങ്ങളുടെ വിവരണങ്ങൾ പ്രദർശിപ്പിക്കുക
  • പേര് കൂട്ടിച്ചേർക്കൽ

ഈ പാക്കേജിന് മറ്റ് പാക്കേജുകളിൽ നിന്ന് ചില വാസ്തുവിദ്യാ വ്യത്യാസങ്ങളുണ്ട് - സ്റ്റാൻഡേർഡ് ഇൻപുട്ടും ഔട്ട്‌പുട്ടും ഉപയോഗിച്ച് ഇൻ്റർപ്രെറ്ററുകളുമായി സംവദിക്കുന്നതിനുപകരം, ഡാറ്റ കൈമാറാൻ ഈ പാക്കേജ് ഒരു ലളിതമായ നെറ്റ്‌വർക്ക് പ്രോട്ടോക്കോൾ ഉപയോഗിക്കുന്നു. ഈ സമീപനം നിങ്ങളെ വളരെയധികം ജോലികൾ ചെയ്യാൻ അനുവദിക്കുന്നു, എന്നാൽ വ്യാഖ്യാതാവിൻ്റെ നടപ്പാക്കലിനെ വളരെയധികം ആശ്രയിച്ചിരിക്കുന്നു കൂടാതെ ഒരു പ്രത്യേക സ്കീം പ്രക്രിയ ആവശ്യമാണ് (സെർവർ x സ്കീം), ഇത് മറ്റ് പ്രക്രിയകളുമായി സംവദിക്കാൻ ഉപയോഗിക്കും.

ഇൻസ്റ്റലേഷനും കോൺഫിഗറേഷനും

Cmuscheme x സ്കീം Guile-ൻ്റെ ഏറ്റവും പുതിയ പതിപ്പുകൾ ഉപയോഗിച്ച് അയയ്ക്കുന്നു, അതിനാൽ നിങ്ങൾ ചെയ്യേണ്ടത് നിങ്ങളുടെ ഇമാക്സ് തിരയൽ പാതയിലേക്ക് Emacs Lisp ഉറവിട ഫയലുകൾ ചേർക്കുകയും ഇനിഷ്യലൈസേഷൻ ഫയലിലേക്ക് ഇനിപ്പറയുന്ന വരി ചേർക്കുകയും ചെയ്യുക:

("gds" ആവശ്യമാണ്)

ഈ കമാൻഡ് പാക്കേജ് ഡൗൺലോഡ് ചെയ്യുകയും സ്കീം വ്യാഖ്യാതാക്കളുമായി സംവദിക്കുന്നതിന് ഉത്തരവാദിയായ ഒരു പ്രത്യേക പ്രക്രിയ ആരംഭിക്കുകയും ചെയ്യുന്നു. പാക്കേജ് പ്രവർത്തിക്കുന്നതിന്, ഗൈൽ തിരയൽ പാതകളിൽ സ്കീമിനായി ഒരു പ്രത്യേക പാക്കേജ് ഉണ്ടായിരിക്കണം എന്നത് ശ്രദ്ധിക്കേണ്ടതാണ്. പാക്കേജ് ഒരു നോൺ-സ്റ്റാൻഡേർഡ് ലൊക്കേഷനിലാണെങ്കിൽ, gds-scheme-directory വേരിയബിൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് അതിൻ്റെ സ്ഥാനം വ്യക്തമാക്കാം, അല്ലെങ്കിൽ, ഈ പാക്കേജ് ഇല്ലെങ്കിൽ, പാക്കേജ് പൂർണ്ണമായി ലോഡ് ചെയ്യപ്പെടില്ല.

gds ക്രമീകരണ ഗ്രൂപ്പ് ഉപയോഗിച്ച് മറ്റ് ക്രമീകരണങ്ങൾ സജ്ജമാക്കാൻ കഴിയും.

സോഴ്സ് കോഡ് ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്നു

Cmuscheme x സ്കീംകോഡ് കണക്കാക്കാൻ അതേ കീബോർഡ് കുറുക്കുവഴികൾ ഉപയോഗിക്കുന്നു സ്കീം-മോഡ്. മിനിബഫറിൽ നൽകിയ എക്‌സ്‌പ്രഷൻ വിലയിരുത്തുന്ന gds-eval-expression (C-c C-e) ഫംഗ്‌ഷൻ ഒരു അപവാദമാണ്.

നടപ്പിലാക്കിയ നല്ല കൂട്ടിച്ചേർക്കലുകളിൽ ഒന്ന് x സ്കീംഫംഗ്‌ഷനും വേരിയബിൾ പേരുകളും പൂർത്തിയാക്കുക, കൂടാതെ നിർദ്ദിഷ്ട ചിഹ്നങ്ങളെക്കുറിച്ചുള്ള സഹായം കൂടാതെ/അല്ലെങ്കിൽ പേര് പ്രകാരം ഒരു ചിഹ്നത്തിനായി തിരയുക.

പേര് പൂർത്തീകരിക്കുന്നത് gds-complete-symbol function (M-TAB കുറുക്കുവഴി) വഴിയാണ്, അത് കഴ്‌സറിന് മുന്നിലുള്ള അക്ഷരങ്ങളുമായി പേരുകൾ പൊരുത്തപ്പെടുന്ന എല്ലാ അറിയപ്പെടുന്ന ചിഹ്നങ്ങളും കണ്ടെത്താൻ ശ്രമിക്കുന്നു. ഒരു പേര് കണ്ടെത്തിയാൽ, അത് ഉടനടി ചേർക്കും, എന്നാൽ നിരവധി ഓപ്ഷനുകൾ ഉണ്ടെങ്കിൽ, ഉപയോക്താവിന് ആവശ്യമുള്ള പേര് തിരഞ്ഞെടുക്കാൻ കഴിയുന്ന ഒരു പുതിയ വിൻഡോ കാണിക്കും.

ഒരു നിർദ്ദിഷ്‌ട ചിഹ്നത്തിനുള്ള സഹായം ലഭിക്കുന്നത്, gds-help-symbol (C-h g) എന്ന ഫംഗ്‌ഷൻ ഉപയോഗിച്ചാണ് ചെയ്യുന്നത്, ഇത് Guile സംവേദനാത്മക പരിതസ്ഥിതിയിൽ കമാൻഡ് (സഹായം SYMBOL) പ്രവർത്തിപ്പിക്കുന്നതിന് സമാനമായ ഫലങ്ങൾ നൽകുന്നു. മിനിബഫർ വഴി ഉപയോക്താവിൽ നിന്ന് ചിഹ്ന നാമം ആവശ്യപ്പെടുന്നു, എന്നാൽ കഴ്‌സർ ഓണാക്കിയിരിക്കുന്ന പേരാണ് സ്ഥിര മൂല്യം. ഒരു ചിഹ്നത്തിൻ്റെ കൃത്യമായ പേര് നിങ്ങൾക്ക് ഓർമ്മയില്ലെങ്കിൽ, നിങ്ങൾക്ക് gds-apropos (C-h G) എന്ന ഫംഗ്‌ഷൻ ഉപയോഗിക്കാം, അത് Guile-ൽ എക്‌സിക്യൂട്ട് (apropos REGEXP) പോലെയുള്ളതും നൽകിയിട്ടുള്ള പേരുകളുമായി പൊരുത്തപ്പെടുന്ന ചിഹ്നങ്ങളുടെ ഒരു ലിസ്റ്റ് പ്രിൻ്റ് ചെയ്യുന്നതുമാണ്. പതിവ് ആവിഷ്കാരം.

ഡീബഗ്ഗിംഗ്

അവസരങ്ങൾ പ്രയോജനപ്പെടുത്താൻ x സ്കീംസംവേദനാത്മക ജോലിയുടെ സമയത്ത്, ഉപയോക്താവ് ഇപ്പോഴും ജോലി നൽകുന്ന മൊഡ്യൂളുകൾ വ്യക്തമായി വ്യക്തമാക്കണം x സ്കീം. ഉദാഹരണത്തിന്, ഇനിപ്പറയുന്ന കോഡ് ഉപയോഗിക്കുന്നത് പ്രവർത്തനത്തിന് ആവശ്യമായ എല്ലാ മൊഡ്യൂളുകളും ലോഡ് ചെയ്യുന്നു:

(ഉപയോഗ-മൊഡ്യൂളുകൾ (ഐസ്-9 ജിഡിഎസ്-ക്ലയൻ്റ് ഡീബഗ്ഗിംഗ് ട്രാപ്പുകൾ)) (മൊഡ്യൂൾ-ഉപയോഗം എന്ന് നാമകരണം ചെയ്യപ്പെട്ടു! "(ഗൈൽ-ഉപയോക്താവ്) "(ഐസ്-9 സെഷൻ)) (gds-accept-input #f)

ഇതിനുശേഷം, നിങ്ങൾക്ക് പ്രവർത്തിക്കാം x സ്കീം. proc_name നടപടിക്രമത്തിൽ ഒരു ബ്രേക്ക്‌പോയിൻ്റ് സജ്ജീകരിക്കുന്നതിന്, സോഴ്‌സ് കോഡ് ബഫറിൽ കണക്കാക്കിയ ഇനിപ്പറയുന്നവ ഉപയോഗിക്കുന്നു:

(ഇൻസ്റ്റാൾ-ട്രാപ്പ് (ഉണ്ടാക്കുക #:behaviour gds-debug-trap #:procedure proc_name))

നിർദ്ദിഷ്ട നടപടിക്രമം വിളിച്ചതിന് ശേഷം, നിങ്ങൾക്ക് ബഫറിൽ ലഭിക്കും x സ്കീംഇതുപോലുള്ള ഒന്ന്:

കോളിംഗ് നടപടിക്രമം: => s s --:** PID XXXXX (Guile-Debug)--All--------

ഈ ബഫറിൽ നിങ്ങൾക്ക് സ്റ്റാക്ക് നാവിഗേറ്റ് ചെയ്യാനും അതിൻ്റെ അവസ്ഥ കാണാനും പ്രോഗ്രാം എക്സിക്യൂഷൻ തുടരാനും കൂടാതെ/അല്ലെങ്കിൽ അതിലൂടെ ചുവടുവെക്കാനും കഴിയും. വ്യക്തിഗത കീകളുമായി ബന്ധിപ്പിച്ചിരിക്കുന്ന നിരവധി കമാൻഡുകൾ ഉപയോഗിച്ച് സ്റ്റാക്ക് ബഫറിലെ പ്രവർത്തനം ഉറപ്പാക്കുന്നു.

ഫംഗ്‌ഷൻ കോൾ സ്റ്റാക്കിലൂടെ നീങ്ങാൻ ഇനിപ്പറയുന്ന കീകൾ ഉപയോഗിക്കാം: u, C-p, മുകളിലെ അമ്പടയാളം എന്നിവ കോൾ സ്റ്റാക്കിൻ്റെ മുകളിലേക്ക് നീക്കാൻ ഉപയോഗിക്കുന്നു, ആ ഫ്രെയിം തിരഞ്ഞെടുക്കുക (gds-up ഫംഗ്‌ഷൻ), d , C-n, ഡൗൺ അമ്പടയാളം എന്നിവ താഴേക്ക് നീക്കാൻ ഉപയോഗിക്കുന്നു. (gds-down) , കൂടാതെ കഴ്‌സർ സ്ഥിതിചെയ്യുന്ന ഫ്രെയിം തിരഞ്ഞെടുക്കാൻ RET കീ ഉപയോഗിക്കുന്നു.

ഒരു സ്റ്റാക്ക് ഫ്രെയിം തിരഞ്ഞെടുക്കുന്നത് സോഴ്സ് കോഡിൻ്റെ അനുബന്ധ ഭാഗം കാണിക്കുന്നതിന് കാരണമാകുന്നു. കൂടാതെ, ചില ഫംഗ്ഷനുകൾ എക്സിക്യൂട്ട് ചെയ്യുമ്പോൾ തിരഞ്ഞെടുത്ത ഫ്രെയിമുമായി ബന്ധപ്പെട്ട പരിസ്ഥിതിയും ഉപയോഗിക്കും.

സ്റ്റാക്ക് ബഫറിൽ പ്രവർത്തിക്കുന്ന അധിക ഫംഗ്ഷനുകളിൽ ഇനിപ്പറയുന്നവ ഉൾപ്പെടുന്നു:

ജിഡിഎസ്-മൂല്യനിർണ്ണയം (ഇ കീ)തിരഞ്ഞെടുത്ത ഫ്രെയിമിന് അനുയോജ്യമായ പരിസ്ഥിതി ഉപയോഗിച്ച് ഒരു എക്സ്പ്രഷൻ വിലയിരുത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു, ഫലം എക്കോ ഏരിയയിൽ പ്രദർശിപ്പിക്കും; gds-frame-info(i)തിരഞ്ഞെടുത്ത ഫ്രെയിമിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ കാണിക്കുന്നു - സോഴ്സ് ഫയലിലെ ഒരു ലൈൻ, അനുബന്ധ എക്സ്പ്രഷൻ, ഫ്രെയിം തരം മുതലായവ; gds-frame-args(A)ആപ്ലിക്കേഷൻ ഫ്രെയിം ആർഗ്യുമെൻ്റുകൾ കാണിക്കുന്നു; gds-proc-source(S)വിളിക്കപ്പെടുന്ന നടപടിക്രമത്തിൻ്റെ സോഴ്സ് കോഡ് കാണിക്കുന്നു. ഒരു അജ്ഞാത ലാംഡ എക്‌സ്‌പ്രഷൻ ഉപയോഗിച്ച് നടപടിക്രമം സൃഷ്‌ടിച്ച സന്ദർഭങ്ങളിൽ ഈ ഫംഗ്‌ഷൻ വളരെ ഉപയോഗപ്രദമാണ്, കാരണം അത്തരം നടപടിക്രമങ്ങൾ ഫംഗ്‌ഷൻ കോൾ സ്റ്റാക്കിൽ കാണിച്ചിരിക്കുന്നു അടുത്തതായി എന്തുചെയ്യുമെന്ന് ഇത് വ്യക്തമാക്കുന്നില്ല.

തടസ്സപ്പെട്ട പ്രോഗ്രാമിൻ്റെ നിർവ്വഹണം തുടരാൻ, x സ്കീംഇനിപ്പറയുന്ന പ്രവർത്തനങ്ങൾ നടപ്പിലാക്കുന്നു:

gds-go (g , c അല്ലെങ്കിൽ q)പ്രോഗ്രാം നിർവ്വഹണം തുടരുന്നു; gds-step-file (SPC)തിരഞ്ഞെടുത്ത സ്റ്റാക്ക് ഫ്രെയിമിൻ്റെ അതേ സോഴ്സ് ഫയലിൻ്റെ ഫംഗ്ഷനുകളുടെ ഒരു ഘട്ടം നിർവ്വഹിക്കുന്നു. മറ്റ് ഫയലുകളിൽ നിന്നുള്ള ഫംഗ്ഷനുകൾ എക്സിക്യൂട്ട് ചെയ്യപ്പെടും, എന്നാൽ അവയിൽ പ്രവേശിക്കാതെ; ജിഡിഎസ്-പടിയിലേക്ക് (i)അടുത്ത ഘട്ടം നിർവഹിക്കുന്നു. പ്രോഗ്രാം എക്സിക്യൂഷൻ്റെ ഏറ്റവും വിശദമായ തലമാണിത്; gds-step-over (o)തിരഞ്ഞെടുത്ത സ്റ്റാക്ക് ഫ്രെയിം എക്സിക്യൂട്ട് ചെയ്യുന്നത് പൂർത്തിയാകുന്നതുവരെ പ്രോഗ്രാം എക്സിക്യൂട്ട് ചെയ്യുന്നു.

ഈ പ്രവർത്തനങ്ങളെല്ലാം ഉപയോഗിച്ച്, ഡവലപ്പർക്ക് പ്രോഗ്രാമിൻ്റെ അവസ്ഥയെക്കുറിച്ചുള്ള വിശദമായ വിവരങ്ങൾ ലഭിക്കും, കൂടാതെ പിശകുകൾ കണ്ടെത്താനും ശരിയാക്കാനും കഴിയും.

സ്കീം48

പദ്ധതി48- അടിസ്ഥാനമാക്കിയുള്ള മറ്റൊരു പാക്കേജ് സ്കീം-മോഡ്, എന്നാൽ സ്കീം48 നടപ്പിലാക്കുന്നതിന് വിപുലമായ പിന്തുണ നൽകുന്നു. ഈ പാക്കേജ് പിന്തുണ ചേർക്കുന്നു ഫോണ്ട്-ലോക്ക് Scheme48-നിർദ്ദിഷ്‌ട കീവേഡുകൾക്കും ഓപ്പറേറ്റർമാർക്കും, കൂടാതെ എക്‌സ്‌പ്രഷൻ മൂല്യനിർണ്ണയ കമാൻഡുകൾക്കായുള്ള അധിക കീ ബൈൻഡിംഗുകൾക്കും.

ഈ പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനുള്ള നടപടിക്രമം സ്റ്റാൻഡേർഡ് ആണ് - Emacs അത് കണ്ടെത്തുന്ന സ്ഥലത്ത് gambit.el സ്ഥാപിക്കുക, കൂടാതെ ഇനിഷ്യലൈസേഷൻ ഫയലിലേക്ക് ഇനിപ്പറയുന്ന വരികൾ ചേർക്കുക:

("gambit-inferior-mode "gambit" ഓട്ടോലോഡ് ചെയ്യുക "ഗാംബിറ്റ് മോഡ് സിമുസ്‌കീമിലേക്ക് ഹുക്ക് ചെയ്യുക.") ("ഗാംബിറ്റ്-മോഡ് "ഗാംബിറ്റ്" ഓട്ടോലോഡ് "ഗാംബിറ്റ് മോഡ് സ്കീമിലേക്ക് ഹുക്ക് ചെയ്യുക.") (ആഡ്-ഹുക്ക് "ഇൻഫീരിയർ-സ്‌കീം-മോഡ്-ഹുക്ക് (ഫംഗ്ഷൻ ഗാംബിറ്റ്-ഇൻഫീരിയർ-മോഡ്)) (ആഡ്-ഹുക്ക് "സ്കീം-മോഡ്-ഹുക്ക് (ഫംഗ്ഷൻ ഗാംബിറ്റ്-മോഡ്)) (സെറ്റ്ക് സ്കീം-പ്രോഗ്രാം-നാമം "ജിഎസ്ഐ -: d-")

നടപ്പിലാക്കിയ റൺ-സ്‌കീം ഫംഗ്‌ഷൻ ഉപയോഗിച്ചാണ് ഗാംബിറ്റ് ഇൻ്റർപ്രെറ്റർ സമാരംഭിക്കുന്നത് സ്കീം-മോഡ്, പക്ഷേ തേനീച്ച മോഡ്അതിലേക്ക് ഔട്ട്‌പുട്ട് ഫിൽട്ടറിംഗ് ദിനചര്യകൾ ചേർക്കുന്നു, ഇത് ഉറവിട ഫയലിൽ ലൊക്കേഷൻ വിവരങ്ങൾ ലഭ്യമാക്കാൻ പാക്കേജിനെ അനുവദിക്കുന്നു. ഇൻ്റർപ്രെറ്റർ സമാരംഭിച്ചതിന് ശേഷം, ഉപയോക്താവിന് കോഡ് എക്സിക്യൂട്ട് ചെയ്യാനും കംപൈൽ ചെയ്യാനും സാധാരണ കീബോർഡ് കുറുക്കുവഴികൾ ഉപയോഗിക്കാൻ കഴിയും - C-x C-e, C-c C-l, C-c C-k മുതലായവ.

സവിശേഷതകൾ കൂടാതെ സ്കീം-മോഡ്, പ്ലാസ്റ്റിക് ബാഗ് തേനീച്ച മോഡ്സോഴ്സ് കോഡ് ഡീബഗ്ഗിംഗിനായി രൂപകൽപ്പന ചെയ്ത നിരവധി പ്രവർത്തനങ്ങൾ വാഗ്ദാനം ചെയ്യുന്നു:

ഗാംബിറ്റ്-തുടരുക (F8 അല്ലെങ്കിൽ C-c c)കോഡ് നടപ്പിലാക്കുന്നത് തുടരുക. വ്യാഖ്യാതാവിൻ്റെ കമാൻഡ്,സിക്ക് സമാനമാണ്; ഗാംബിറ്റ്-ക്രാൾ-ബാക്ക്ട്രേസ്-ന്യൂവർ (F9 അല്ലെങ്കിൽ C-c ])ചെയിനിലെ മുമ്പത്തെ ഫ്രെയിമിലേക്ക് പോകുക. - ഇൻ്റർപ്രെറ്റർ കമാൻഡിന് സമാനമായത്; ഗാംബിറ്റ്-ക്രാൾ-ബാക്ക്ട്രേസ്-ഓൾഡർ (F10 അല്ലെങ്കിൽ C-c [)ചെയിനിലെ അടുത്ത ഫ്രെയിമിലേക്ക് നീങ്ങുക. + ഇൻ്റർപ്രെറ്റർ കമാൻഡിന് സമാനമാണ്; ഗാംബിറ്റ്-സ്റ്റെപ്പ്-തുടർച്ച (F11 അല്ലെങ്കിൽ C-c s)വിളിക്കുന്ന ഫംഗ്‌ഷൻ നൽകുന്നത് ഉൾപ്പെടെ ഒരു കണക്കുകൂട്ടൽ ഘട്ടം നടത്തുക. ഇൻ്റർപ്രെറ്റർ കമാൻഡിന് സമാനമായി,s; gambit-leap-continuation (F12 അല്ലെങ്കിൽ C-c l)വിളിക്കുന്ന ഫംഗ്‌ഷൻ നൽകാതെ ഒരു കണക്കുകൂട്ടൽ ഘട്ടം നടത്തുക. ഇൻ്റർപ്രെറ്റർ കമാൻഡിന് സമാനമായി, l; gambit-kill-last-popup (C-c_)എക്സ്പ്രഷൻ പ്രദർശിപ്പിക്കുന്നതിനായി സൃഷ്ടിച്ച വിൻഡോ ഇല്ലാതാക്കുക.

ഈ കമാൻഡുകൾക്ക് ചെറിയ കീബോർഡ് കുറുക്കുവഴികളുണ്ട്: M-c , M-[ , M-] , M-s , M-l, M-_ , എന്നാൽ അവ ഇമാക്സിലെ കീബോർഡ് കുറുക്കുവഴികളുടെ കൺവെൻഷനുകൾ പാലിക്കാത്തതിനാൽ സ്ഥിരസ്ഥിതിയായി അവ പ്രവർത്തനക്ഷമമല്ല. അവയുടെ ഉപയോഗം പ്രവർത്തനക്ഷമമാക്കുന്നതിന്, നിങ്ങൾ ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കേണ്ടതുണ്ട് (അല്ലെങ്കിൽ അത് പ്രാരംഭ ഫയലിൽ ഇടുക):

(setq gambit-repl-command-prefix "\e" )

ബീ-മോഡ് (bmacs)

bmacsബിഗ്ലൂ സ്കീമിനൊപ്പം പ്രവർത്തിക്കുന്നതിനുള്ള ഒരു സംയോജിത സോഫ്‌റ്റ്‌വെയർ പരിതസ്ഥിതിയുടെ നടപ്പാക്കലാണ്. ഈ പാക്കേജ് ഇനിപ്പറയുന്ന സവിശേഷതകൾ നടപ്പിലാക്കുന്നു:

  • കോഡ് ഡീബഗ്ഗിംഗ്;
  • പ്രൊഫൈലിംഗ്;
  • മേക്ക് ഫയലുകളുടെ യാന്ത്രിക സൃഷ്ടിയും അപ്‌ഡേറ്റും;
  • കോഡ് നാവിഗേഷൻ;
  • പതിപ്പ് നിയന്ത്രണ സംവിധാനങ്ങളുമായുള്ള സംയോജനം;
  • ഡോക്യുമെൻ്റേഷൻ കാണുന്നത്;
  • സംവേദനാത്മക കോഡ് നിർവ്വഹണം;
  • മാക്രോ വികാസം;
  • സാക്ഷരതയുള്ള പ്രോഗ്രാമിംഗ് ശൈലിക്ക് ചില പിന്തുണ.

ഈ പാക്കേജിന് പ്രവർത്തിക്കാൻ നിരവധി അധിക യൂട്ടിലിറ്റികൾ ആവശ്യമാണ്, അവയിൽ മിക്കതും ബിഗ്ലൂവിനൊപ്പം വരുന്നു. പ്രോജക്റ്റ് വെബ്‌സൈറ്റിലോ വിതരണത്തിൻ്റെ ഭാഗമായോ ഡോക്യുമെൻ്റേഷൻ കണ്ടെത്താനാകും.

ഇൻസ്റ്റലേഷനും കോൺഫിഗറേഷനും

ബിഗ്ലൂ സ്കീമിൻ്റെ ഭാഗമായാണ് ഈ പാക്കേജ് വിതരണം ചെയ്യുന്നത്, ഇത് വിതരണത്തിൻ്റെ bmacs ഉപഡയറക്‌ടറിയിലാണ്. പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യാൻ, ഈ ഡയറക്ടറിയിലേക്ക് പോയി അവിടെ കമാൻഡ് പ്രവർത്തിപ്പിക്കുക:

EMACSDIR ഇൻസ്റ്റാൾ ആക്കുക =

നിങ്ങൾ വ്യക്തമാക്കിയ സ്ഥലത്ത് ആവശ്യമായ ഫയലുകൾ ഇൻസ്റ്റാൾ ചെയ്യും. ഇതിനുശേഷം, നിങ്ങൾ ഉറവിട ഫയലുകൾ തുറക്കുമ്പോൾ പാക്കേജ് സ്വയമേവ ലോഡുചെയ്യുന്നതിന് നിങ്ങളുടെ സമാരംഭ ഫയലിലേക്ക് ഇനിപ്പറയുന്ന വരികൾ ചേർക്കാൻ കഴിയും:

(ഓട്ടോലോഡ് "bdb "bdb" "bdb മോഡ്" t) (ഓട്ടോലോഡ് "ബീ-മോഡ് "ബീ-മോഡ്" "ബീ മോഡ്" t) (setq ഓട്ടോ-മോഡ്-അലിസ്റ്റ് ("("\\.scm$" ചേർക്കുക" . ബീ-മോഡ്) ("\\.sch$" . ബീ-മോഡ്) ("\\.scme$" . ബീ-മോഡ്) ("\\.bgl$" . ബീ-മോഡ്) ("\\.bee$ ". ബീ-മോഡ്)) ഓട്ടോ-മോഡ്-അലിസ്റ്റ്))

അതിനുള്ള ക്രമീകരണങ്ങൾ നൽകുന്ന തേനീച്ച ക്രമീകരണ ഗ്രൂപ്പ് ഉപയോഗിച്ച് പാക്കേജ് ക്രമീകരണങ്ങൾ സജ്ജമാക്കാൻ കഴിയും ജിഡിഎസ്, ഗ്രൂപ്പുകളും dbg & ബഗ്, ഡീബഗ്ഗർ ക്രമീകരണങ്ങൾ സജ്ജമാക്കാൻ ഉപയോഗിക്കുന്നു.

സോഴ്സ് കോഡ് ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്നു

ഡൗൺലോഡ് ചെയ്ത ശേഷം ജിഡിഎസ്അനുബന്ധ ടൂൾബാർ ഐക്കണുകൾ ഉപയോഗിച്ചോ അല്ലെങ്കിൽ മോഡ് സമാരംഭിക്കുമ്പോൾ ദൃശ്യമാകുന്ന ബീ മെനുവിൽ നിന്ന് ആവശ്യമായ ഇനങ്ങൾ തിരഞ്ഞെടുത്തോ ഉപയോക്താവിന് അടിസ്ഥാന കമാൻഡുകൾ നടപ്പിലാക്കാൻ കഴിയും.

ബിഗ്ലൂ കൺവെൻഷനുകൾക്ക് അനുസൃതമായി ഇൻഡൻ്റ് ചെയ്യാൻ, പാക്കേജ് ജിഡിഎസ്നിരവധി ഫംഗ്‌ഷനുകൾ നിർവചിക്കുന്നു: ബീ-ഇൻഡൻ്റ്-സെക്‌സ്‌പി (സി-എം-ക്യു) നിലവിലെ എക്‌സ്‌പ്രഷൻ ഇൻഡൻ്റ് ചെയ്യുന്നു, ബീ-ഇൻഡൻ്റ്-ഡിഫൈൻ (സി-സി ടാബ് സി-ഡി) നിലവിലെ ഫംഗ്‌ഷൻ നിർവചനത്തിനായി ഇത് ചെയ്യുന്നു, ബീ-ഇൻഡൻ്റ്-ലാസ്റ്റ്-സെക്‌സ് (സി-സി ടാബ് സി-എൽ) എക്‌സ്‌പ്രഷനുകളെ ഇൻഡൻ്റ് ചെയ്യുന്നു. കഴ്സറിന് മുമ്പ്, മുതലായവ.

സോഴ്സ് കോഡുമായി പ്രവർത്തിക്കുമ്പോൾ ഉപയോഗിക്കുന്ന വളരെ പ്രധാനപ്പെട്ട ഒരു കൂട്ടം ഫംഗ്ഷനുകൾ ഫംഗ്ഷനുകളുടെയും വേരിയബിളുകളുടെയും നിർവചനങ്ങൾക്കായി തിരയുന്നതിനുള്ള ഫംഗ്ഷനുകളാണ്. ഒരു വേരിയബിൾ ഡെഫനിഷൻ കണ്ടെത്താൻ, നിങ്ങൾക്ക് ബീ-ടാഗ്സ്-ഫൈൻഡ് (സി-എക്സ് 5 .) അല്ലെങ്കിൽ ബീ-ടാഗ്സ്-ഫൈൻഡ്-വേരിയബിൾ (സി-സി സി-ഡി എഫ്) ഉപയോഗിക്കാം. ഒരു മൊഡ്യൂൾ നിർവചനത്തിനായി തിരയുന്നതിന്, ബീ-ഫൈൻഡ്-മൊഡ്യൂൾ (C-c C-d m) എന്ന ഫംഗ്‌ഷൻ ഉണ്ട്. കൂടാതെ, ജിഡിഎസ്രണ്ട് കീബോർഡ് കുറുക്കുവഴികൾ പുനർ നിർവചിക്കുന്നു - M-. & M-, ഇത് ബീ-ടാഗ്-ഫൈൻഡ്, ബീ-ടാഗുകൾ-ഫൈൻഡ്-നെക്സ്റ്റ് ഫംഗ്ഷനുകൾ എന്നിവയുമായി ബന്ധിപ്പിക്കുന്നു, ഇത് ഫംഗ്ഷനും ക്ലാസ് നിർവചനങ്ങളും കണ്ടെത്താൻ അനുവദിക്കുന്നു.

മൊഡ്യൂളുകൾക്കൊപ്പം പ്രവർത്തിക്കുന്നത് ലളിതമാക്കാൻ, ജിഡിഎസ്നിലവിലെ സോഴ്‌സ് കോഡ് - ബീ-ഇംപോർട്ട്-ബൈൻഡിംഗ് ഫംഗ്‌ഷൻ (C-c RET i), അതുപോലെ നിലവിലെ മൊഡ്യൂളിൽ നിന്ന് എക്‌സ്‌പോർട്ടുചെയ്‌ത ഫംഗ്‌ഷനുകളുടെയും വേരിയബിളുകളുടെയും ലിസ്‌റ്റ് - ബീ-കയറ്റുമതി-ഇമ്പോർട്ടുചെയ്‌ത മൊഡ്യൂളുകളുടെ ലിസ്റ്റ് നിയന്ത്രിക്കുന്ന ഒരു കൂട്ടം ഫംഗ്‌ഷനുകൾ നിർവചിക്കുന്നു. ഫംഗ്‌ഷൻ (C-c RET f), ബീ- എക്‌സ്‌പോർട്ട്-വേരിയബിൾ (C-c RET v). കൂടാതെ, സി ഫയലുകളിൽ നിന്ന് ചിഹ്നങ്ങൾ ഇമ്പോർട്ടുചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്ന ഒരു പ്രത്യേക ഫംഗ്‌ഷൻ ഉണ്ട് - ബീ-ഇംപോർട്ട്-സി-ഫയൽ (സി-സി ആർഇടി സി), കൂടാതെ അനുബന്ധ കോഡ് കംപൈൽ ചെയ്യുന്നതിന് ഒരു ഡിപൻഡൻസി ചേർക്കുന്നതിന് ഇത് മേക്ക്‌ഫൈലിനെ അപ്‌ഡേറ്റ് ചെയ്യുന്നു.

ലിറ്ററേറ്റ് പ്രോഗ്രാമിംഗ് എന്ന് വിളിക്കപ്പെടുന്നവയ്ക്ക് പാക്കേജ് ചില പിന്തുണയും നൽകുന്നു. നൽകിയിരിക്കുന്ന പിന്തുണ പൂർണ്ണമല്ല, എന്നാൽ മൊഡ്യൂളിലേക്കുള്ള ലിങ്കുകളും ഫംഗ്‌ഷൻ വിവരണങ്ങളും കോഡിലേക്ക് തിരുകാൻ നിങ്ങളെ അനുവദിക്കുന്നു. മൊഡ്യൂൾ കമൻ്റുകളിലും ഫംഗ്‌ഷൻ വിവരണങ്ങളിലും @path , @node & @deffn കീവേഡുകൾ ഉപയോഗിച്ചാണ് ഇത് നേടുന്നത്. നൽകിയിരിക്കുന്ന മൊഡ്യൂളിനെ വിവരിക്കുന്ന ഫയലും ഡോക്യുമെൻ്റേഷൻ വിഭാഗവും @path & @node കീവേഡുകൾ നിർവചിക്കുന്നു കൂടാതെ മൊഡ്യൂൾ ഡിക്ലറേഷനായി അഭിപ്രായത്തിൽ വ്യക്തമാക്കിയിരിക്കുന്നു. ഫംഗ്‌ഷൻ്റെ കമൻ്റിൽ @defn കീവേഡ് സൂചിപ്പിച്ചിരിക്കുന്നു. ഈ കീവേഡുകൾ ഉപയോഗിക്കുന്നതിലൂടെ, ഡവലപ്പർക്ക് പ്രസക്തമായ വിഭാഗങ്ങളിലേക്കും ഫീച്ചർ വിവരണങ്ങളിലേക്കും വേഗത്തിൽ നാവിഗേറ്റ് ചെയ്യാൻ കഴിയും, ഇത് മികച്ച കോഡ് ഡോക്യുമെൻ്റേഷൻ അനുവദിക്കുന്നു.

കോഡ് നടപ്പിലാക്കുകയും കംപൈൽ ചെയ്യുകയും ചെയ്യുന്നു

മറ്റ് പാക്കേജുകൾ പോലെ, ജിഡിഎസ് Emacs ബഫറിൽ നിന്ന് നേരിട്ട് സ്കീം കോഡ് എക്സിക്യൂട്ട് ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്നു. ഇൻ്റർപ്രെട്ടർ ആരംഭിക്കുന്നതിന്, നിങ്ങൾ ude-repl-other-frame ഫംഗ്ഷൻ (C-c C-r C-r) എക്സിക്യൂട്ട് ചെയ്യേണ്ടതുണ്ട്, ഉചിതമായ ടൂൾബാർ ഐക്കൺ തിരഞ്ഞെടുക്കുക ( Repl), അല്ലെങ്കിൽ അനുബന്ധ മെനു ഇനം.

ഇൻ്റർപ്രെറ്റർ ലോഡുചെയ്‌തതിനുശേഷം, ഉപയോക്താവിന് ഇനിപ്പറയുന്ന ഫംഗ്‌ഷനുകൾ ഉപയോഗിച്ച് കോഡ് എക്‌സിക്യൂട്ട് ചെയ്യാൻ കഴിയും:

  • ude-repl-send-buffer (C-c C-r b) കണക്കുകൂട്ടലിനായി മുഴുവൻ ബഫറും അയയ്ക്കുന്നു;
  • ude-repl-send-region (C-c C-r r), വ്യാഖ്യാതാവിന് തിരഞ്ഞെടുത്ത ഒരു ബ്ലോക്ക് കോഡ് അയയ്ക്കുന്നു;
  • bee-repl-send-define (C-c C-r d) നിലവിലെ നിർവചനം നടപ്പിലാക്കാൻ ഉപയോഗിക്കുന്നു;
  • bee-repl-send-last-sexp (C-c C-r l) കഴ്‌സറിന് മുമ്പുള്ള പദപ്രയോഗത്തിൻ്റെ മൂല്യം വിലയിരുത്തുന്നു;
  • bee-repl-send-toplevel-sexp (C-c C-r t) നിലവിലെ എക്‌സ്‌പ്രഷൻ മുഴുവനായി വിലയിരുത്താൻ ഉപയോഗിക്കുന്നു.

മിക്കപ്പോഴും, മാക്രോകൾ ഉപയോഗിക്കുമ്പോൾ, നിങ്ങൾക്ക് അവ വികസിപ്പിക്കാൻ കഴിയണം. സാധാരണ കോഡ് ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്നത് പോലെ, ജിഡിഎസ്നിങ്ങളുടെ കോഡിൽ മാക്രോകൾ വികസിപ്പിക്കുന്നതിനുള്ള ഒരു കൂട്ടം ഫംഗ്‌ഷനുകൾ നടപ്പിലാക്കുന്നു (ഈ സാഹചര്യത്തിൽ, മാക്രോ നിർവചനങ്ങളുടെ സാന്നിധ്യത്തിനായി മുഴുവൻ ബഫറും സ്കാൻ ചെയ്യും):

  • bee-expand-buffer (C-c C-e C-e) നിലവിലെ ബഫറിലെ മാക്രോകൾ വികസിപ്പിക്കുന്നതിന് കാരണമാകുന്നു;
  • bee-expand-region (C-c C-e C-r) കോഡ്-പിന്നിൽ മാക്രോകൾ വികസിപ്പിക്കുന്നു;
  • bee-expand-define (C-c C-e C-d) നിലവിലെ നിർവചനത്തിൽ മാക്രോകൾ വികസിപ്പിക്കുന്നു
  • bee-expand-last-sexp (C-c C-e C-l) കഴ്സറിന് മുമ്പുള്ള എക്സ്പ്രഷനിൽ മാക്രോകൾ വികസിപ്പിക്കുന്നു;
  • bee-expand-toplevel-sexp (C-c C-e C-t) നിലവിലെ എക്സ്പ്രഷനിലെ മാക്രോകളെ വികസിപ്പിക്കുന്നു.

പ്രോഗ്രാമുകൾ കംപൈൽ ചെയ്യുന്നതിന്, മൊഡ്യൂളുകൾക്കിടയിലുള്ള ഡിപൻഡൻസികൾ വിവരിക്കുകയും കംപൈലേഷൻ ഫ്ലാഗുകൾ വ്യക്തമാക്കുകയും ചെയ്യുന്ന ഒരു Makefile നിങ്ങൾക്കുണ്ടായിരിക്കണം. പ്രോജക്റ്റിന് ഒരു റൂട്ട് ഡയറക്ടറി ആവശ്യമാണ് - ജിഡിഎസ് Makefile , .afile , അല്ലെങ്കിൽ .etags ഫയലുകളിൽ ഒന്ന് തിരഞ്ഞുകൊണ്ട് പ്രോജക്റ്റിൻ്റെ റൂട്ട് ഡയറക്‌ടറി നിർണ്ണയിക്കാനുള്ള ശ്രമങ്ങൾ, അല്ലെങ്കിൽ റൂട്ട് ഡയറക്‌ടറി ude-user-set-root-directory (C-c C-p C-r) ഫംഗ്‌ഷൻ അല്ലെങ്കിൽ ഉചിതമായത് ഉപയോഗിച്ച് സജ്ജമാക്കാൻ കഴിയും. ടൂൾബാർ ബട്ടൺ.

റൂട്ട് ഡയറക്‌ടറി വ്യക്തമാക്കിക്കഴിഞ്ഞാൽ, ude-genrate-makefile ഫംഗ്‌ഷൻ (C-c C-c a അല്ലെങ്കിൽ C-c C-c C-l) ഉപയോഗിച്ച് ഒരു മേക്ക്‌ഫയൽ സൃഷ്‌ടിക്കാൻ കഴിയും, ഇത് നൽകിയിരിക്കുന്ന സോഴ്‌സ് കോഡ് ഏത് എക്‌സിക്യൂട്ടബിളിൻ്റെ പേരിനായി ഉപയോക്താവിനെ പ്രേരിപ്പിക്കും. സമാഹരിച്ചത്. Makefile ഇതിനകം നിലവിലുണ്ടെങ്കിൽ, ഇതേ കീബോർഡ് കുറുക്കുവഴികൾ അത് അപ്ഡേറ്റ് ചെയ്യുകയും .afile, .etags ഫയലുകൾ പുനർനിർമ്മിക്കുകയും ചെയ്യും. കൂടാതെ, Makefile - ude-edit-makefile (C-c C-c e), Makefile - ude-update-makefile (C-c C-c u) അപ്ഡേറ്റ് ചെയ്യുക, പ്രോഗ്രാമിൻ്റെ ഡീബഗ്ഗിനും അവസാന പതിപ്പുകൾക്കുമിടയിൽ മാറുന്നതിന് - ude- എഡിറ്റുചെയ്യുന്നതിന് ഒരു കൂട്ടം ഫംഗ്ഷനുകൾ ഉണ്ട്. makefile-debug-mode (C-c C-c C-d) & ude-makefile-ഫൈനൽ-മോഡ് (C-c C-c C-f) എന്നിവയും മറ്റുള്ളവയും.

Makefile നിലവിലുണ്ടെങ്കിൽ, ude-mode-compile-from-menu (C-c C-c C-c) ഫംഗ്ഷൻ ഉപയോഗിച്ച് കോഡ് കംപൈൽ ചെയ്യാൻ സാധിക്കും. കിൽ-കംപൈലേഷൻ ഫംഗ്‌ഷൻ (C-c C-c k) ഉപയോഗിച്ച് നിങ്ങൾക്ക് സമാഹാരം തടസ്സപ്പെടുത്താം.

കംപൈലേഷൻ പൂർത്തിയായ ശേഷം, നിങ്ങൾക്ക് ude-execute ഫംഗ്‌ഷൻ (C-c C-c C-r) ഉപയോഗിച്ച് എക്സിക്യൂട്ടബിൾ എക്സിക്യൂട്ട് ചെയ്യാം.

ഡീബഗ്ഗിംഗും പ്രൊഫൈലിംഗും

ബിഗ്ലൂ പാക്കേജിൽ സോഴ്സ് കോഡ് തലത്തിൽ ഡീബഗ് ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്ന ഒരു ഡീബഗ്ഗറും ഉണ്ട്. ജിഡിഎസ് Emacs-ൽ ഈ ഡീബഗ്ഗറുമായുള്ള ഇടപെടലിനെ പിന്തുണയ്ക്കുന്നു. ഡീബഗ്ഗർ സമാരംഭിക്കുന്നതിന്, നിങ്ങൾ ബീ-ഡീബഗ് ഫംഗ്ഷൻ (C-c C-b C-b) എക്സിക്യൂട്ട് ചെയ്യേണ്ടതുണ്ട് അല്ലെങ്കിൽ ഉചിതമായ ടൂൾബാർ ഐക്കൺ അല്ലെങ്കിൽ മെനു ഇനം തിരഞ്ഞെടുക്കുക. എന്നാൽ ഡീബഗ്ഗർ സമാരംഭിക്കുന്നത് അതിലേക്ക് യാന്ത്രികമായി കണക്റ്റുചെയ്യില്ല, അതിനാൽ നിലവിലെ ബഫറിനെ ഡീബഗ്ഗറുമായി ബന്ധിപ്പിക്കുന്നതിന് നിങ്ങൾ ബീ-ടോഗിൾ-കണക്റ്റ്-ബഫർ (C-c C-b c) ഫംഗ്ഷൻ വ്യക്തമായി എക്സിക്യൂട്ട് ചെയ്യണം, ഇത് ബ്രേക്ക്‌പോയിൻ്റുകൾ സജ്ജമാക്കാനും മറ്റ് ജോലികൾ ചെയ്യാനും നിങ്ങളെ അനുവദിക്കും. സോഴ്സ് ടെക്സ്റ്റ് ബഫറിൽ ആയിരിക്കുമ്പോൾ.

നിങ്ങൾ Makefile ജനറേഷൻ ഉപയോഗിക്കുകയാണെങ്കിൽ പ്രോഗ്രാം പ്രൊഫൈലിംഗ് യാന്ത്രികമായി പിന്തുണയ്ക്കുന്നു. പ്രൊഫൈൽ കോഡിലേക്ക്, നിങ്ങൾ ആദ്യം അത് പ്രൊഫൈലിംഗ് പിന്തുണയോടെ കംപൈൽ ചെയ്യണം, അത് ബീ-പ്രൊഫൈലർ-സ്റ്റാർട്ട് ഫംഗ്ഷൻ (C-c C-p c) ഉപയോഗിച്ചാണ് ചെയ്യുന്നത്. സമാഹരിച്ചതിന് ശേഷം, നിങ്ങൾക്ക് ബീ-പ്രൊഫൈലർ-ഇൻസ്പെക്റ്റ് (C-c C-p i) പ്രവർത്തിപ്പിക്കാൻ കഴിയും, അത് പ്രോഗ്രാം പ്രവർത്തിപ്പിക്കും, തുടർന്ന് നിങ്ങൾക്ക് വിശകലനം ചെയ്യുന്നതിനായി എക്സിക്യൂഷൻ ഡാറ്റ ശേഖരിക്കുന്ന bglprof യൂട്ടിലിറ്റി പ്രവർത്തിപ്പിക്കുക.

മറ്റ് പ്രവർത്തനങ്ങൾ

പാക്കേജ് റഫറൻസ് വിവരങ്ങൾ നേടാനുള്ള അവസരങ്ങൾ നൽകുന്നു. ബീ-ഡോക്-വിസിറ്റ് ഫംഗ്‌ഷൻ (C-c C-d i) പ്രവർത്തിപ്പിച്ചോ ടൂൾബാറിലെ ഇൻഫോ ഐക്കണിൽ ക്ലിക്ക് ചെയ്‌തോ ഇത് ചെയ്യാം. കഴ്‌സറിൻ്റെ നിലവിലെ സ്ഥാനത്തെ ആശ്രയിച്ച് ഈ ഫംഗ്‌ഷൻ വ്യത്യസ്തമായി പ്രവർത്തിക്കുന്നു - കഴ്‌സർ ഒരു ഐഡൻ്റിഫയറിലാണെങ്കിൽ, ഈ ഐഡൻ്റിഫയറിനായുള്ള ഡോക്യുമെൻ്റേഷൻ പ്രദർശിപ്പിക്കും, ഒരു കോഡ് പ്രദേശം തിരഞ്ഞെടുത്തിട്ടുണ്ടെങ്കിൽ, ഈ പ്രദേശത്തിനായുള്ള ഡോക്യുമെൻ്റേഷൻ നൽകും. അല്ലെങ്കിൽ, താൽപ്പര്യമുള്ള ഡോക്യുമെൻ്റേഷൻ വിഭാഗത്തിൻ്റെ പേര് ഉപയോക്താവിനോട് ആവശ്യപ്പെടും, തിരഞ്ഞെടുത്ത വിഭാഗം കാണിക്കും.

ഉപയോക്താവിന് കാണിക്കുന്ന വിവരങ്ങൾ ബിഗ്ലൂവിനൊപ്പം വരുന്ന ഇൻഫോ ഫയലുകളിൽ നിന്ന് എടുത്തതാണ്. കൂടാതെ, നിലവിലെ പ്രോജക്റ്റിൻ്റെ ഡയറക്ടറികളിൽ ഡോക്യുമെൻ്റേഷൻ തിരയുകയും അവ സ്വയമേവ ചേർക്കപ്പെടുകയും ചെയ്യുന്നു. കൂടാതെ, തിരയേണ്ട അധിക ഡോക്യുമെൻ്റേഷൻ ഫയലുകൾ ഉപയോക്താവിന് വ്യക്തമാക്കാൻ കഴിയും.

Cmuscheme bmacsപ്രോജക്റ്റ് തലത്തിൽ ഡാറ്റ ഉപയോഗിച്ച് പ്രവർത്തിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന പതിപ്പ് നിയന്ത്രണ സംവിധാനങ്ങളുമായി പ്രവർത്തിക്കുന്നതിന് നിരവധി ഫംഗ്ഷനുകളും നൽകുന്നു. എന്നാൽ പുതിയ പതിപ്പ് നിയന്ത്രണ സംവിധാനങ്ങളുടെ ആവിർഭാവവും അവയ്‌ക്കുള്ള അനുബന്ധ ഇൻ്റർഫേസുകളും കാരണം, ഈ പ്രവർത്തനങ്ങൾക്ക് പ്രത്യേകിച്ച് ആവശ്യക്കാരില്ല.

കൂടാതെ, ഈ പാക്കേജ് നടപ്പിലാക്കിയ നിരവധി അധിക സവിശേഷതകൾ ഉണ്ട്, ഉദാഹരണത്തിന്, സിയിൽ എഴുതിയ കോഡ് ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്നതിനുള്ള പിന്തുണ മുതലായവ, എന്നാൽ ഈ സവിശേഷതകളുടെ ഒരു വിവരണം ഈ ലേഖനത്തിൻ്റെ പരിധിക്കപ്പുറമാണ്.

SLIME-ൽ സ്കീം പിന്തുണ

ഉപയോഗിക്കാൻ SLIMEസ്കീമിനൊപ്പം, പാക്കേജ് വിഭാഗത്തിൽ വിവരിച്ചിരിക്കുന്നതുപോലെ നിങ്ങൾ ചില അടിസ്ഥാന പാക്കേജ് സജ്ജീകരണം നടത്തേണ്ടതുണ്ട്, തുടർന്ന് ആവശ്യമായ ഘടകങ്ങൾ ഡൗൺലോഡ് ചെയ്യുക. പൊതുവേ, ഇത് ഇനിപ്പറയുന്ന രീതിയിൽ ചെയ്യുന്നു:

(ആഡ്-ഹുക്ക് "സ്ലിം-ലോഡ്-ഹുക്ക് (ലാംഡ() ("സ്ലിം-സ്കീം ആവശ്യമാണ്)))

ഈ കമാൻഡ് പ്രവർത്തിക്കാൻ ആവശ്യമായ ഹുക്കുകൾ ഇൻസ്റ്റാൾ ചെയ്യും SLIME, എന്നാൽ പിന്തുണയ്ക്കുന്ന ഓരോ ഡയലക്റ്റിനും അനുബന്ധ ഫയലിലെ നിർദ്ദേശങ്ങൾക്കനുസൃതമായി നിങ്ങൾ അധിക കോൺഫിഗറേഷൻ നടത്തേണ്ടി വന്നേക്കാം - swank-kawa.scm അല്ലെങ്കിൽ swank-mit-scheme.scm .

ഒപ്പം ജോലിയുമായി ബന്ധപ്പെട്ട മറ്റെല്ലാം SLIME, അനുബന്ധ വിഭാഗത്തിൽ വിവരിച്ചിരിക്കുന്നു.

ഡിഫോൾട്ടായി, ഒരു സ്കീം പ്രോസസ്സ് മാത്രമേ പ്രവർത്തിക്കാൻ അനുവദിക്കൂ. എന്നാൽ നിങ്ങൾക്ക് ഒരേ സമയം നിരവധി പ്രക്രിയകൾ പ്രവർത്തിപ്പിക്കണമെങ്കിൽ പാക്കേജ് ഉപയോഗിക്കാം.

കൂടാതെ, ഡെലിവറി bmacsപാക്കേജുകളും ലഭ്യമാണ് cee, ബിഗ്ലൂ വിപുലീകരണങ്ങൾ എഴുതാൻ ഉപയോഗിക്കുന്ന സി കോഡ് എഡിറ്റുചെയ്യാൻ രൂപകൽപ്പന ചെയ്‌തിരിക്കുന്നു, ബിഗ്ലൂ ഡീബഗ്ഗറിന് പിന്തുണ നൽകുന്ന ബഗ്-മോഡ്, കൂടാതെ ude(യുണിക്സ് ഡെവലപ്മെൻ്റ് എൻവയോൺമെൻ്റ്), ബിഗ്ലൂവിനൊപ്പം പ്രവർത്തിക്കാൻ ഉപയോഗിക്കുന്ന വിവിധ യൂട്ടിലിറ്റികൾക്കും സമാഹരണത്തിനും പിന്തുണ നൽകുന്നു.

Makefile നിലവിലില്ലെങ്കിൽ, ഈ പ്രവർത്തനം ഒരു ഫയലിൽ നിന്ന് എക്സിക്യൂട്ടബിൾ മൊഡ്യൂളിൻ്റെ സമാഹാരം ആരംഭിക്കുന്നതിന് കാരണമാകുന്നു എന്നത് ശ്രദ്ധിക്കേണ്ടതാണ്.

വിളിക്കപ്പെടുന്ന swank- മൊഡ്യൂൾ.

സ്കീമുമായി ബന്ധപ്പെട്ട എല്ലാ ഘടകങ്ങളും വിതരണത്തിൻ്റെ സംഭാവന ഉപഡയറക്‌ടറിയിലാണ് SLIME, അതിനാൽ ഇത് നിങ്ങളുടെ തിരയൽ പാതകളിലേക്ക് ചേർക്കാൻ മറക്കരുത്.