භාෂා ප්‍රදර්ශනය


511

සටහන්

  • මෙම නූල විවෘත හා අගුළු හරිනු ලබන්නේ ප්‍රජාව ව්‍යතිරේකයක් කිරීමට තීරණය කළ බැවිනි . ඔබට මෙහි සමාන ප්‍රශ්න ඇසිය හැකි බවට සාක්ෂි ලෙස කරුණාකර මෙම ප්‍රශ්නය භාවිතා නොකරන්න . කරුණාකර අමතර ප්‍රශ්න නිර්මාණය නොකරන්න .

  • මෙය තවදුරටත් නොවන අතර ඡන්ද ප්‍රමාණයෙන් කුඩා කොටස් සීමා නොවේ. ඔබ මෙම ත්‍රෙඩ් එක කලින් සිටම දන්නවා නම්, කරුණාකර ඔබ වෙනස්කම් ගැන හුරුපුරුදු බවට වග බලා ගන්න.

මෙම ත්‍රෙඩ් එක ඔබේ ප්‍රියතම ක්‍රමලේඛන භාෂාවන්ට ලබා දිය යුතු සිත්ගන්නාසුළු, ප්‍රයෝජනවත්, අපැහැදිලි සහ / හෝ අද්විතීය අංග පෙන්වීමට කැපවී ඇත. මෙය අභියෝගයක් හෝ තරඟයක් නොව, හැකි තරම් ක්‍රමලේඛන භාෂා ප්‍රදර්ශනය කිරීමට සහයෝගී උත්සාහයකි.

මෙය ක්‍රියාත්මක වන ආකාරය

  • සියලුම පිළිතුරු වලට පෝස්ට් එකේ ඉහළින් ඇති ක්‍රමලේඛන භාෂාවේ නම ඇතුළත් කළ යුතුය #.

  • පිළිතුරුවල එක් (හා එකම) ෆැක්ටෝයිඩ් අඩංගු විය හැකිය, එනම් භාෂාව විස්තර කරන කේතයක් නොමැති වාක්‍ය කිහිපයක්.

  • ෆැක්ටෝයිඩ් හැරුණු විට, පිළිතුරු කේත හෝ කුඩා කොටස් වලින් සමන්විත විය යුතුය, ඒවා වැඩසටහන් හෝ කාර්යයන් විය හැකිය (නමුත් එසේ නොවිය යුතුය).

  • ස්නිපෙට් සම්බන්ධ කිරීම අවශ්‍ය නොවේ. ඇත්ත වශයෙන්ම, ඕනෑවට වඩා සම්බන්ධ වන ස්නිපෙට් අතිරික්ත විය හැකිය.

  • මෙය තරඟයක් නොවන බැවින්, සෑම ක්‍රමලේඛන භාෂාවක්ම නිර්මාණය කරන සෑම විටම පිළිගනු ලැබේ.

  • කේත ස්නිපෙට් අතළොස්සකට වඩා අඩංගු පිළිතුරු , ෆැක්ටෝයිඩ් සහ එක් ස්නිපෙට් එකක් හැර අනෙක් සියල්ල බිඳ දැමීමට ස්ටැක් ස්නිපටයක් භාවිතා කළ යුතුය .

  • හැකි සෑම විටම, ක්‍රමලේඛන භාෂාවකට එක් පිළිතුරක් පමණක් තිබිය යුතුය. මෙය ප්‍රජා විකියකි, එබැවින් ඔබ විසින්ම එය නිර්මාණය කර නොතිබුණද, ඕනෑම පිළිතුරකට ස්නිපෙට් එක් කිරීමට නිදහස් වන්න. ඒ නිසා එය Stack ඇබිත්ත තනතුරු සම්පීඩනය සඳහා 30,000 සීමාවකින් බලපෑම අවම කළ යුතු අතර,.

මෙම මාර්ගෝපදේශ වලට පෙර පිළිතුරු සංස්කරණය කළ යුතුය. කරුණාකර ඒවා අවශ්‍ය පරිදි යාවත්කාලීන කිරීමට උදව් කරන්න.

වත්මන් පිළිතුරු, අකාරාදී පිළිවෙලින් භාෂා නාමයෙන් වර්ග කර ඇත

$.ajax({type:"GET",url:"https://api.stackexchange.com/2.2/questions/44680/answers?site=codegolf&filter=withbody",success:function(data){for(var i=0;i<data.items.length;i++){var temp=document.createElement('p');temp.innerHTML = data.items[i].body.split("\n")[0];$('#list').append('<li><a href="https://codegolf.stackexchange.com/a/' + data.items[i].answer_id + '">' + temp.innerText || temp.textContent + '</a>');}}})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><base href="http://codegolf.stackexchange.com"><ul id="list"></ul>

Answers:


416

ගණිතය

ඔබට එය පහළ සිට ඉහළට කියවීමට අවශ්‍ය විය හැකි බැවින් එය ලියා ඇති අනුපිළිවෙල වන අතර සමහර පැහැදිලි කිරීම් පෙර කොටස් වලට යොමු වනු ඇත හෝ තවදුරටත් පහළට පැහැදිලි කිරීම් උපකල්පනය කරනු ඇත.

ලැයිස්තුව තරමක් දිගු වෙමින් පවතී. මම අඩු රසවත් ස්නිපෙට් ඉවත් කිරීමට පටන් ගෙන ඇති අතර, මම දැන් ස්නිපෙට් මඟ හැරීම ආරම්භ කරමි. 41 දක්වා වූ කුඩා කොටස් ලැයිස්තුවක් සඳහා සංශෝධන ඉතිහාසය බලන්න. සමහර සැබෑ මැණික් සඳහා, 81 , 64 , 44 , 23 , 19 , 12 සහ 8 යන ස්නිපෙට් බලන්න .

දිග 143 සහ ස්නිපෙට් 144

අවසාන වශයෙන් ... මම මේ සඳහා ටික වේලාවක් බලා සිටිමි (සහ එය ගොල්ෆ් ක්‍රීඩා කරන තාක් කල්, ඒ නිසා මට තව දුරටත් බලා සිටීමට අවශ්‍ය නැත). ඔබට සංඛ්‍යාත්මකව සමීකරණ කළ හැකි බවත්, ඔබට අවකල සමීකරණ විසඳිය හැකි බවත් මම කලින් සඳහන් කළෙමි. ඒ සඳහා සුළු නොවන උදාහරණයක් පෙන්වීමට මට අවශ්‍ය විය.

සැරයටියක ද්විත්ව පෙන්ඩුලම් එකක් සලකා බලන්න (එනම් තවත් එකක් සමඟ බැඳී ඇති පෙන්ඩුලම). සෑම සැරයටියකටම ඒකක දිග ඇති අතර, පෙන්ඩුලම් පඩි දෙකෙහි ඒකක ස්කන්ධය ඇත. සමීකරණය කෙටි කිරීම සඳහා මම ඒකක ගුරුත්වාකර්ෂණය ද භාවිතා කර ඇත්තෙමි. පහත දැක්වෙන අක්ෂර 143 ස්නිපටය එවැනි පද්ධතියක් සඳහා ලග්‍රැන්ජියානු චලිත සමීකරණ විසඳයි (පෙන්ඩුලම් කෝණ සහ කෝණික ගම්‍යතාව අනුව). මෙම පී.ඩී.එෆ් තුළ ව්‍යුත්පන්නයක් සොයාගත හැකිය , ඔබ ලැග්‍රැන්ජියානු යාන්ත්‍ර විද්‍යාව ගැන හුරුපුරුදු නම් එය තරමක් forward ජු ඉදිරි ව්‍යායාමයකි.

එය තරමක් කියවිය නොහැකි ය, මන්ද මට එය ගොල්ෆ් කිරීමට සිදුවිය.

d@t@t;NDSolve[{#''@t==-#4#2''[t]Cos@d-##3#2'@t^2Sin@d-Sin@#@t&@@@{{θ,φ,1,.5},{φ,θ,-1,1}},θ@0==2,φ@0==1,θ'@t==φ'@t==0/.t->0},{θ,φ},{t,0,60}]

පිළිවෙලට ඇති දෙය නම් ගණිතමය විසඳුම් දළ වශයෙන් පෙනෙන ආකාරය පිළිබඳ කුඩා කුමන්ත්‍රණයක් වහාම පෙන්වයි:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

හරි, නමුත් එය ටිකක් කොරයි. අපට දැන ගැනීමට අවශ්‍ය වන්නේ පෙන්ඩුලයේ චලිතය ඇත්ත වශයෙන්ම පෙනෙන්නේ කෙසේද යන්නයි. අක්ෂර 144 කින් යුත් ස්නිපටයක් මෙන්න, පහළ පෙන්ඩුලමේ ගමන් පථය සොයා ගන්නා අතර පෙන්ඩුල සජීවිකරණය කරයි:

Graphics@{Line@{{0,0},p=θ~(h={Sin@#@#2,-Cos@#@#2}&)~t,p+φ~h~t},White,{0,0}~Circle~2.2}~Show~ParametricPlot[θ~h~u+φ~h~u,{u,0,t}]~Animate~{t,0,60}

එහි ප්‍රති ing ලයක් ලෙස සජීවිකරණය පෙනෙන්නේ:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

මට තරමක් වංචා කිරීමට සිදු විය: ඔබ ඉන් ඔබ්බට කුමන්ත්‍රණය කරන්නේ නම් t = 30, ParametricPlotපෙරනිමියෙන් කුමන්ත්‍රණ ලකුණු කිහිපයක් භාවිතා කරන අතර රේඛාව තරමක් හකුරු බවට පත්වේ. නමුත් බොහෝ සිත්ගන්නා ගතිකතාවයන් සිදුවන්නේ එම කාලයෙන් පසුවය, එබැවින් PlotPoints -> 200සජීවිකරණයේ දෙවන භාගය වඩාත් සුමට ලෙස පෙනීම සඳහා මම විකල්පය භාවිතා කළෙමි . එය සැලකිය යුතු ලෙස වෙනස් නොවන අතර පළමු භාගය කෙසේ හෝ වෙන් කොට හඳුනාගත නොහැකි වනු ඇත.

මම සිතන්නේ මෙය මගේ අන්තිම ස්නිපටය වනු ඇති බවයි. ඔබ මෙය භුක්ති වින්දා යැයි සිතමි!

දිග 100 ස්නිපටය

GeoGraphics[{GeoStyling[Opacity[0.5]], NightHemisphere[]}, GeoBackground -> GeoStyling["ReliefMap"]]

මම Geoස්නිපටය 100 සඳහා හොඳ කාර්යයන් කිහිපයක් ගැන සිතමින් සිටියෙමි , නමුත් අවසානයේදී මට ට්වීට්-ඒ-වැඩසටහනේ ඉතා සුළු දෙයක් හමු විය , එය මට සොරකම් කිරීමට සිදුවිය. ඉහත සඳහන් කරුණු සහන සිතියමක් හරහා රාත්‍රී අර්ධගෝලයේ අර්ධ පාරදෘශ්‍ය හැඩයක් ආවරණය කිරීමෙන් වර්තමාන කාලය හා දිවා කාලය සඳහා පෘථිවියේ ඉතා සුන්දර පෙනුමක් ඇති සූර්ය සිතියමක් ජනනය කරයි:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

දිග 81 ස්නිපටය

CellularAutomaton[{{0,2,3,If[0<Count[#,1,2]<3,1,3]}[[#[[2,2]]+1]]&,{},{1,1}},i,n]

මම පොරොන්දු වෙනවා එය අන්තිම සෛලීය ස්වයංක්‍රීය යන්ත්‍රයයි. නමුත් එම අයිතිය අක්ෂර 81 කින් වයර් වර්ල්ඩ් ඇත. මේ වතාවේ මම එක අංකයකින් රීතිය සංකේතවත් නොකළෙමි, අ) එය හාස්‍යජනක ලෙස විශාල වනු ඇතැයි මා සිතන නිසා (මම එය හදුනා ගැනීමට කරදර වූයේ නැත) සහ ආ) තවත් භාවිතයක් ඔබට පෙන්වීමට CellularAutomaton. මෙම අවස්ථාවේදී, රීතිය හුදෙක් නිර්වචනය කර ඇත්තේ පිරිසිදු ශ්‍රිතයක් ලෙස වන අතර එය සෛල අසල්වැසි ප්‍රදේශයක් ලබා ගෙන සෛලයේ නව අගය ලබා දෙයි. මෙය වර්ණ / ප්‍රාන්ත 2 කට වඩා වැඩි සෛලීය ස්වයංක්‍රීය යන්ත්‍ර සඳහා වඩාත් ප්‍රායෝගික ප්‍රවේශයකි.

කෙසේ වෙතත්, මම විකිපීඩියාවෙන් i(සං als ා ජනනය කරන ඔරලෝසු දෙකක් සහ XOR ගේට්ටුවක්) ආදර්ශය සකස් කර පියවර 50 ක් පමණ ධාවනය කිරීමට ඉඩ දෙමි:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

ඔබ කැමති නම්, සත්‍ය කුමන්ත්‍රණය සහ සජීවිකරණය ස්නිපෙට් 77 විය හැකිය:

ListAnimate[ArrayPlot[#,ColorRules->{0->Black,1->Blue,2->Red,3->Yellow}]&/@w]

දිග 69 ස්නිපටය

DSolve[r^2*R''[r]+2r*R'[r]-R[r]==0&&(R[r]==1&&R'[r]==2/.r->1),R[r],r]

ප්‍රයෝජනවත් දෙයකට ආපසු යන්න. සාමාන්‍ය සමීකරණ පද්ධති හැරුණු විට ගණිතයට අවකල සමීකරණ පද්ධති ද විසඳිය හැකිය. ඉහත දැක්වෙන්නේ තාක්‍ෂණිකව මායිම් කොන්දේසි සහිත එක් අවකල සමීකරණයක් පමණි, නමුත් ඔබට එය සමීකරණ තුනක පද්ධතියක් ලෙස සැපයිය හැකිය. ඒකාබද්ධ කිරීමේ කාර්යයන් හා සමාන DSolveවන්නේ නිශ්චිත විසඳුම් NDSolveසඳහා වන අතර පද්ධතිය සංඛ්‍යාත්මකව විසඳනු ඇත. ඉහත දැක්වෙන්නේ තනි විසඳුමක්

{{R[r] -> 1/2 r^(-(1/2) - Sqrt[5]/2) (1 - Sqrt[5] + r^Sqrt[5] + Sqrt[5] r^Sqrt[5])}}

එය දැන් වැඩිදුර ගණනය කිරීම් සඳහා පහසුවෙන් භාවිතා කළ හැකිය.

දිග 64 ස්නිපටය

CellularAutomaton[{224,{2,{{2,2,2},{2,1,2},{2,2,2}}},{1,1}},i,n]

මම ඔබට තවත් CellularAutomatonමැජික් පොරොන්දු වුණා ! මෙම ස්නිපටය පියවර iසඳහා ආරම්භක කොන්දේසිය සමඟ කොන්වේස් ගේම් ඔෆ් ලයිෆ් ගණනය nකරන අතර සියලු අතරමැදි කාලසටහන් සඳහා ප්‍රති result ලය ලබා දෙයි.

පරාමිතීන් පිළිබඳ වචන කිහිපයක්: 2යනු සෛල තත්වයන් ගණනකි. {{2,2,2},{2,1,2},{2,2,2}}3x3 අසල්වැසි සෛල 9 සඳහා බර ලබා දෙයි. සෛලය අසල්වැසියන් 8 දෙනාගේ එකතුවෙන් වෙන් කොට හඳුනාගත හැකි බව සහතික කරයි. {1,1}CA රීතිය එක් දිශාවකට පියවර 1 ක් දුරින් පිහිටි සෛල මත රඳා පවතින බව පවසයි. අවසාන වශයෙන්, 224සත්‍ය යාවත්කාලීන කිරීමේ රීතිය තනි අංකයකින් කේතනය කර ඇත. මෙම අංකය හදුනා ගැනීම ටිකක් උපක්‍රමශීලී විය හැකි නමුත් ප්‍රලේඛනයේ තරමක් ප්‍රයෝජනවත් නිබන්ධනයක් ඇත . වඩාත් සංකීර්ණ ස්වයංක්‍රීය දත්ත සඳහා, තනි අංකයක් එය කපා නොදමනු ඇත (මන්ද එම සංඛ්‍යාව විශාල වනු ඇත). සමහර විට අපි හෙට එහි යමු! ;)

කෙසේ වෙතත්, මම අහඹු ජාලයකට iසහ 200 ක් තුළට පෝෂණය කර nප්‍රති සජීවිකරණය සජීවිකරණය හරහා යවන්නේ ArrayPlotනම්, එය සැබවින්ම ක්‍රියාත්මක වන බව අපට පෙනේ:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

දිග 59 ස්නිපටය

SphericalPlot3D[Re[Sin[θ]Cos[θ]Exp[2I*φ]],{θ,0,π},{φ,0,2π}]

ස්නිපෙට් 26 හි ධ්‍රැවීය කුමන්ත්‍රණය මතකද? අපට ත්‍රිමාණයෙන් එකම දේ කළ හැකිය! : (ඇත්ත වසයෙන් ම, කාර්යයන් දෙකක් RevolutionPlot3Dසිලින්ඩරාකාර polars හා SphericalPlot3Dසමාන යන්තම් ගෝලාකාර polars සඳහා.) Graphics3Dසියලු ත්රිමාණ බිම් කොටස් Mathematica හි ස්වයංක්රීයව rotatable වේ, ඒ නිසා ඔබට හොඳ කැමරාවක් කෝණය දැරීමට වන ගැන කරදර වෙන්න ඕනේ නැහැ. ඉහත කුමන්ත්‍රණ ගෝලාකාර හාර්මොනික් වැනි දෙයක් (තරමක් නොවේ) පෙනෙන ආකාරයට පෙනේ:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

දිග 52 ස්නිපටය

Manipulate[Plot[x^2a+x*b,{x,-3,3}],{a,.1,3},{b,0,3}]

මේ කෙනා ලස්සනයි. Manipulateගනී ඕනෑම අදහස් ප්රකාශ විචල්ය රෑනක් සමග එය parameterises, පසුව ඔබ පරාමිතීන් අයකර සජීවී ප්රකාශනය වෙනස්කම් ආකාරය දැකිය හැකි විජට්, ලබා දෙයි. ප්‍රකාශනයක් ලෙස ඔබට සාමාන්‍යයෙන් යම් ආකාරයක කුමන්ත්‍රණයක් ඇත. පරාමිති වෙනස් කිරීමට විසඳුම් පවුල් ප්‍රතිචාර දක්වන ආකාරය නිරූපණය කිරීම සඳහා ඔබ දේශනවලදී ගණිතය භාවිතා කරන්නේ නම් මෙය විශේෂයෙන් ප්‍රයෝජනවත් වේ. ඉහත දැක්වෙන්නේ aසහ bසංගුණක පරාබෝලා පරිමාණය හා මාරු කරන ආකාරයයි:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

දිග 48 ස්නිපටය

Import["http://www.google.com/doodles","Images"]

Importඉතා බලවත් විධානයකි. තැටියෙන් සහ වෙබයෙන් ගොනු පැටවීම සඳහා එය භාවිතා වේ. එය විවිධ ගොනු ආකෘති ගොඩක් දන්නා අතර සමහර ඒවා සඳහා (HTML පිටු වැනි) ඇත්ත වශයෙන්ම එකවරම දත්ත උකහා ගත හැකිය. ඉහත දැක්වෙන්නේ ගූගල් හි ඩූඩල් පිටුවෙන් සියලුම පින්තූර බාගත කිරීමයි.

දිග 45 ස්නිපටය

EdgeDetect@ExampleData@{"TestImage","Splash"}

සමහර රූප සැකසුම් සඳහා කාලය. ගණිතමය රූප (ලීනා වැනි), වයනය, ත්‍රිමාණ ආකෘති සහ ශ්‍රව්‍ය ස්නිපෙට් ඇතුළු උදාහරණ දත්ත සමූහයක් සමඟ පැමිණේ. පළමුව, අපි ඒවායින් එකක් පටවන්නෙමු:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

දාර හඳුනා ගැනීමට අවශ්‍යද? එය තනි ක්‍රියාකාරී ඇමතුමකි:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

දිග 44 ස්නිපටය

ArrayPlot@CellularAutomaton[110,{{1},0},100]

අවසාන වශයෙන්, මට භාවිතා කිරීමට ප්‍රමාණවත් අක්ෂර ඇති CellularAutomatonඅතර ප්‍රති .ලය ද ලබා දේ. :) මා දන්නා CellularAutomatonපරිදි ගණිතමය ගණකාධිකාරීවරුන්ගේ එකම කාර්යය වන්නේ සීඅයිඒ සම්බන්ධය. නමුත් ස්ටීවන් වුල්ෆ්රාම් සෛලීය ස්වයංක්‍රීයකරණය සම්බන්ධයෙන් තමා අංක එකේ පුද්ගලයා ලෙස සලකන බව පෙනේ, එබැවින් මෙම ක්‍රියාව ඇදහිය නොහැකි තරම් බලවත්ය. ඉහත දැක්වෙන්නේ එහි සරලම භාවිතයයි. මෙය පියවර 100 ක් සඳහා 1D සෛලීය ස්වයංක්‍රීය යන්ත්‍රයක් අනුකරණය කරයි - එය සැබවින්ම එම සෑම පියවරකදීම ස්වයංක්‍රීය යන්ත්‍රයේ තත්වය නැවත ලබා දෙනු ඇත, එබැවින් ප්‍රති result ලය ද්විමාන වේ. රීතිය පළමු පරාමිතිය වන අතර එය ලැයිස්තු හරහා සවිස්තරාත්මකව දැක්විය හැකිය, නැතහොත් තනි අංකයකින් කේතනය කර ඇත. මෙම උදාහරණය සඳහා, මම තරමක් ප්‍රසිද්ධ, ටියුරින් සම්පූර්ණ, රීතිය 110 තෝරාගෙන ඇත . {{1},0}ආරම්භක තත්වය අර්ථ දක්වයි: තනි1ශුන්‍ය පසුබිමක් ඉදිරිපිට. සමහර විට මම CellularAutomatonතවත් චරිත ලබා ගත හැකි විට අනාගතයේ තවත් විශේෂාංග කිහිපයක් පෙන්වනු ඇත: එයට සීඅයිඒ ඉහළ මානයන්ගෙන් අනුකරණය කළ හැකිය, විශාල අසල්වැසි ස්ථාන සහ ප්‍රාන්ත දෙකකට වඩා තිබේ.

ArrayPlot2D ලැයිස්තුවක් ඒවායේ වටිනාකම පෙන්නුම් කරන colors න වර්ණ ජාලයක් ලෙස සකස් කරන තවත් හොඳ කුමන්ත්‍රණ උපයෝගීතාවකි. සරලම අවස්ථාවෙහිදී, 0සිතියම් ගත කිරීම සුදු පැහැයට සහ 1කළු පැහැයට හැරේ. ස්නිපටයේ ප්‍රති result ලය:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

දිග 43 ස්නිපටය

HighlightGraph[graph,FindVertexCover@graph]

මම ප්‍රස්ථාර සඳහන් කර ටික කාලයක් ගත වී ඇත. ගණිතමය තුළ ගොඩනගා ඇති පොදු ප්‍රස්තාර න්‍යායාත්මක ගැටලු රාශියක් සහ හොඳ දෘශ්‍යකරණ මෙවලම් තිබේ. ඉහත දක්වා ඇති පරිදි, graphප්‍රස්ථාරයේ අවම ශීර්ෂ ආවරණයක් සොයාගත හැකි අතර, පසුව එම සිරස් උද්දීපනය කර ප්‍රස්ථාරය විදහා දක්වන්න. උදා: නම් graphවේ PetersenGraph[7,2]ආපසු ඇබිත්ත 18 සිට, අප ලබා ගන්න:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

දිග 42 ස්නිපටය

Animate[Plot[Sin[t-x],{x,0,10}], {t,0,10}]

ගණිතයේ දේවල් සජීවිකරණය කිරීම ඉතා සරල ය (ඒවා රූප පවා විය යුතු නැත). ඔබ එය එක් එක් රාමුව සඳහා ඇගයීමට ලක් කළ යුතු ප්‍රකාශනය සහ රාමු වලට වඩා වෙනස් විය යුතු පරාමිති සමූහයක් ලබා දෙයි. ඉහත දැක්වෙන්නේ චලනය වන සයින් තරංගයක කුමන්ත්‍රණයකි. සජීවිකරණය පහත දැක්වෙන GIF හා සමාන වනු ඇත:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

දිග 40 ස්නිපටය

SortBy[PlanetData[#, "EscapeVelocity"]&]

SortByඔබ අපේක්ෂා කරන දේ කරයි: එය එක් එක් ලැයිස්තු මූලද්‍රව්‍යයට ලබා දී ඇති ශ්‍රිතයක් සිතියම් ගත කිරීමෙන් ලබාගත් අගයන් මත පදනම්ව ලැයිස්තුවක් වර්ග කරයි. නමුත් රැඳී සිටින්න, ඉහත ඇමතුමේ ලැයිස්තුවක් කිසිසේත් අඩංගු නොවේ. ගණිත 10 සිට, සමහර කාර්යයන් සඳහා ව්‍යංජන හෝ අර්ධ යෙදුම් සඳහා සහය ඇත. මෙය වඩා පිරිසිදු ක්‍රියාකාරී භාෂාවන්හි මෙන් භාෂා අංගයක් නොවේ, නමුත් මෙය බොහෝ විට ප්‍රයෝජනවත් වන සමස්ත කාර්යයන් සමූහයක් සඳහා අතින් ක්‍රියාත්මක වේ. එහි අර්ථය වන්නේ ඉහත සඳහන් ස්නිපටය නව ශ්‍රිතයක් ලබා දෙන අතර එය ලැයිස්තුවක් පමණක් ගෙන පසුව ලබා දී ඇති ශ්‍රිතය අනුව වර්ග කිරීමයි. මෙම වර්ග කිරීමේ අනුපිළිවෙල ඔබ ඔබේ කේතය පුරා නිතර භාවිතා කරන දෙයක් නම් මෙය ඉතා ප්‍රයෝජනවත් වේ.

ඔව්, තවත් හොඳ *Dataකාර්යයක් ඇත - ඉහත දැක්වෙන්නේ ග්‍රහලෝකවල ගැලවීමේ වේගය අනුව ග්‍රහලෝක නම් වර්ග කිරීමයි.

දිග 39 ස්නිපටය

f[1]=1
f[2]=1
f[n_]:=f[n]=f[n-1]+f[n-2]

ෆිබොනාච්චි ක්‍රියාකාරිත්වය වඩාත් කාර්යක්ෂම කිරීමට මම පොරොන්දු වුණෙමි. මෙම ස්නිපටය ගණිතයේ සුළු මතක සටහන් ඇති ආකාරය පෙන්වයි. වෙනස් f[n]=කර ඇති සියල්ල තෙවන පේළියේ අතිරේක බව සලකන්න . එබැවින් fනව අගයක් ඉල්ලා සිටින විට (කියන්න f[3]), පසුව f[3]=f[3-1]+f[3-2]ඇගයීමට ලක් කෙරේ. මෙය ගණනය කර f[2]+f[1], පසුව f[3](සමඟ =, සමඟ නොවේ :=!) වෙත පවරන අතර අවසානයේ අපගේ ආරම්භක ඇමතුම සඳහා වටිනාකම ලබා දෙයි. එබැවින් මෙම ශ්‍රිතය ඇමතීමෙන් මෙම අගය සඳහා නව අර්ථ දැක්වීමක් එක් කරයි, එය පැහැදිලිවම සාමාන්‍ය රීතියට වඩා විශේෂිත වේ - එබැවින් fඑම අගය සමඟ අනාගත ඇමතුම් සඳහා භාවිතා වේ .

අනෙක් Fibonacci ශ්‍රිතය අගයන් 30 ක් සඳහා තත්පර 4 ක් ගත වූ බව මතකද? 300,000 අගයන් සඳහා තත්පර 3 ක් අවශ්‍ය වේ.

දිග 37 ස්නිපටය

l//.{a___,x_,b___,x_,c___}:>{a,x,b,c}

අන්තිම ස්නිපටයේ මම රටා සඳහන් කළෙමි. මේවා බොහෝ විට රීති වල භාවිතා වන අතර (වෙනත් දේ අතර) යම් රටාවකට ගැලපෙන ව්‍යුහයන් වෙනස් කිරීමට භාවිතා කළ හැකිය. ඉතින් අපි මේ ස්නිපටය දෙස බලමු.

{a___,x_,b___,x_,c___}:>{a,x,b,c}රීතියකි. x_තනි යටි ඉරි සහිත තනි අත්තනෝමතික අගයකට යොමු වන රටාවකි (එය ලැයිස්තුවක් හෝ ඊට සමාන විය හැකිය). a___යනු අනුක්‍රමික රටාවකි (ස්නිපෙට් 15 ද බලන්න), එය 0 හෝ වැඩි අගයන් අනුක්‍රමයක් දක්වයි. මම x_දෙවරක් භාවිතා කරන බව සලකන්න , එයින් අදහස් වන්නේ ලැයිස්තුවේ එම කොටස් දෙක එකම අගයක් විය යුතු බවයි. එබැවින් මෙම රටාව දෙවරක් වටිනාකමක් ඇති ඕනෑම ලැයිස්තුවකට ගැලපේ, එම මූලද්‍රව්‍යය අමතා එම මූලද්‍රව්‍ය xදෙක වටා ඇති අනුක්‍රම තුන අමතයි a, bසහ c. මෙය ප්‍රතිස්ථාපනය වේ {a,x,b,c}- එනම් දෙවැන්න xඅතහැර දමනු ලැබේ.

//.රටාව තවදුරටත් නොගැලපෙන තෙක් දැන් රීතියක් ක්‍රියාත්මක වේ. එබැවින් ඉහත සඳහන් ස්නිපටය ලැයිස්තුවෙන් සියලුම අනුපිටපත් ඉවත් කරයි l. කෙසේ වෙතත්, එය ඊට වඩා ටිකක් බලවත් ය: //.රීතිය සියලු මට්ටම්වල අදාළ වේ. එබැවින් lඑහි ලැයිස්තු තිබේ නම් (ඕනෑම ගැඹුරකට), එම උප ලැයිස්තු වල අනුපිටපත් ද ඉවත් කරනු ලැබේ.

දිග 36 ස්නිපටය

f[1]=1
f[2]=1
f[n_]:=f[n-1] + f[n-2]

නව භාෂා විශේෂාංග සඳහා කාලය! ගණිතයේ කාර්යයන් නිර්වචනය කිරීම පිළිබඳ හොඳ කරුණු කිහිපයක් තිබේ. ආරම්භයක් සඳහා, ඔබට එකම නමක් සඳහා, විවිධ සංඛ්‍යා හෝ තර්ක වර්ග සඳහා විවිධ ශ්‍රිත අර්ථ දැක්වීම් සැපයිය හැකිය. අර්ථ දැක්වීමක් අදාළ වන්නේ කුමන ආකාරයේ තර්ක විස්තර කිරීමට ඔබට රටා භාවිතා කළ හැකිය . තවද, ඔබට තනි අගයන් සඳහා අර්ථ දැක්වීම් පවා එකතු කළ හැකිය. ගණිතමය පසුව ඕනෑම ශ්‍රිත ඇමතුමක් සඳහා වඩාත් නිශ්චිත අර්ථ දැක්වීමක් තෝරා ගන්නා අතර නිර්වචනය නොකළ ඇමතුම් තක්සේරු නොකර තබයි. Ifමූලික නඩුව සඳහා ස්විචයක් භාවිතා කරනවාට වඩා පුනරාවර්තන කාර්යයන් වඩාත් ස්වාභාවික ආකාරයකින් ලිවීමට මෙය (වෙනත් දේ අතර) ඉඩ දෙයි .

ඉහත ඇබිත්ත ගැන සටහන තවත් දෙයක් මම දෙකම භාවිතා කරනවා බව ය =සහ :=. වෙනස වන්නේ =අර්ථ දැක්වීමේ වේලාවේ දකුණු පස තක්සේරු කරනු ලබන්නේ එක් වරක් පමණක් වන :=අතර වම් පස යොමු කරන සෑම අවස්ථාවකම නැවත ඇගයීමට ලක් කෙරේ. ඇත්ත වශයෙන්ම :=විචල්යයන් පැවරීමේදී පවා ක්රියා කරයි, එවිට ගතික අගයක් ඇත.

එබැවින් ඉහත, ඇත්ත වශයෙන්ම, ෆිබොනාච්චි ශ්‍රිතයක් පමණි. ඒ වගේම ඉතා අකාර්යක්ෂමයි. පළමු අංක 30 ගණනය කිරීම මගේ යන්ත්‍රයේ තත්පර 4 ක් පමණ ගත වේ. පුනරාවර්තන අර්ථ දැක්වීමෙන් මිදීමකින් තොරව කාර්ය සාධනය වැඩි දියුණු කරන්නේ කෙසේදැයි අපි ඉක්මනින් බලමු.

දිග 35 ස්නිපටය

StreamPlot[{x^2,y},{x,0,3},{y,0,3}]

ද්විමාන දෛශික ක්ෂේත්‍රයක ප්‍රවාහයන් ප්‍රතිදානය කරන ඉතා පිළිවෙලට ඇති බිම් කොටසකි. මෙය සාමාන්‍ය දෛශික කුමන්ත්‍රණයකට සමානය, සෑම ඊතලයක්ම දෛශික ක්ෂේත්‍රයට ස්පර්ශ වේ. කෙසේ වෙතත්, ඊතල සවි කිරීම් ජාලයක් මත තබා නැති නමුත් රේඛාවලට සම්බන්ධ වේ (ප්‍රවාහ රේඛා). මෙම රේඛාවල ඇති වැදගත්කම නම්, දෛශික ක්ෂේත්‍රය ප්‍රවේග ක්ෂේත්‍රයක් නම් අංශුවක ගමන් පථය (තරලයකින් කියන්න). ඉහත ආදානය පෙනේ:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

දිග 34 ස්නිපටය

Solve[a*x^4+b*x^3+c*x^2+d*x==0, x]

ගණිතයට සමීකරණ ද විසඳිය හැකිය (හෝ සමීකරණ පද්ධති, නමුත් අපට දැන් ලැබී ඇත්තේ අක්ෂර බොහොමයක් පමණි). ප්‍රති result ලය සුපුරුදු පරිදි සංකේතාත්මක වනු ඇත.

{
  {x -> 0}, 
  {x -> -(b/(3 a)) - (2^(1/3) (-b^2 + 3 a c))/(3 a (-2 b^3 + 9 a b c - 27 a^2 d + Sqrt[4 (-b^2 + 3 a c)^3 + (-2 b^3 + 9 a b c - 27 a^2 d)^2])^(1/3)) + (-2 b^3 + 9 a b c - 27 a^2 d + Sqrt[4 (-b^2 + 3 a c)^3 + (-2 b^3 + 9 a b c - 27 a^2 d)^2])^(1/3)/(3 2^(1/3) a)}, 
  {x -> -(b/(3 a)) + ((1 + I Sqrt[3]) (-b^2 + 3 a c))/(3 2^(2/3) a (-2 b^3 + 9 a b c - 27 a^2 d + Sqrt[4 (-b^2 + 3 a c)^3 + (-2 b^3 + 9 a b c - 27 a^2 d)^2])^(1/3)) - ((1 - I Sqrt[3]) (-2 b^3 + 9 a b c - 27 a^2 d + Sqrt[4 (-b^2 + 3 a c)^3 + (-2 b^3 + 9 a b c - 27 a^2 d)^2])^(1/3))/(6 2^(1/3) a)}, 
  {x -> -(b/(3 a)) + ((1 - I Sqrt[3]) (-b^2 + 3 a c))/(3 2^(2/3) a (-2 b^3 + 9 a b c - 27 a^2 d + Sqrt[4 (-b^2 + 3 a c)^3 + (-2 b^3 + 9 a b c - 27 a^2 d)^2])^(1/3)) - ((1 + I Sqrt[3]) (-2 b^3 + 9 a b c - 27 a^2 d + Sqrt[4 (-b^2 + 3 a c)^3 + (-2 b^3 + 9 a b c - 27 a^2 d)^2])^(1/3))/( 6 2^(1/3) a)}
}

විසඳුම් රීති ලෙස ලබා දී ඇති බව සලකන්න , එය අනාගත ස්නිපටයේ වඩාත් විස්තරාත්මකව පෙන්වනු ඇත.

දිග 33 ස්නිපටය

Dynamic@EdgeDetect@CurrentImage[]

මෙම අදහස සඳහා බෙන්වාෆල්ට ස්තූතියි. CurrentImage[]ඔබගේ වෙබ් කැමරාවේ වත්මන් රූපය පටවනු ලැබේ. EdgeDetectපින්තූරයක් කළු-සුදු රූපයක් බවට පත් කරයි, එහිදී දාර සුදු වන අතර ඉතිරි කොටස කළු වේ (උදාහරණයක් ලෙස ස්නිපෙට් 45 බලන්න). නියම විනෝදය පැමිණෙන්නේ Dynamicප්‍රකාශනය යාවත්කාලීන වන බැවිනි. එබැවින් මෙහි ප්‍රති result ලය ඇත්ත වශයෙන්ම ඔබේ වෙබ් කැමරාවෙන් පින්තූර ප්‍රවාහනය කර ඒවා සජීවීව හඳුනා ගැනීම සිදු කරයි.

දිග 32 ස්නිපටය

NumberLinePlot[x^2<2^x,{x,-2,5}]

තරමක් අසාමාන්ය කුමන්ත්රණයක්. ලකුණු හා අන්තරයන් වැනි සංඛ්‍යා රේඛාව ඔස්සේ විවිධ දේ රාශියක් සැලසුම් කළ හැකිය. ඔබට එය කොන්දේසියක් ද ලබා දිය හැකි අතර, එම කොන්දේසිය සත්‍ය වන කලාපය එය ඔබට පෙන්වනු ඇත:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

ඊතලය පෙන්නුම් කරන්නේ කලාපය අඛණ්ඩව අනන්තය දක්වා පවතින බවයි. සුදු කවයන් පෙන්නුම් කරන්නේ ඒවා විවෘත කාල පරතරයන් බවයි (අවසාන ලක්ෂ්‍යයන් අන්තරයේ කොටසක් නොවේ). සංවෘත කෙළවර සඳහා, කව පුරවනු ඇත.

දිග 28 ස්නිපටය

Graphics3D@{Sphere[],Cone[]}

සමහර ත්‍රිමාණ ග්‍රැෆික් සඳහා කාලය. ඉහත දැක්වෙන්නේ සුපුරුදු පරාමිතීන් සහිත සුපිරි බලැති ගෝලයක් සහ කේතුවක් වන අතර එය ස් stal ටික බෝලයක් මෙන් පෙනේ:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

ගණිතයේ දී, ඔබට මෙම කුඩා විජට් එක කරකවන්නට ක්ලික් කර අදින්න.

දිග 27 ස්නිපටය

CountryData["ITA", "Shape"]

තවත් *Data! CountryDataහරිම පිස්සු. රටක හැඩය ලබා ගැනීම අයිස් කුට්ටියේ අගයක්වත් නොවේ. රටවල් පිළිබඳ බොහෝ දත්ත තිබේ, ඔබට බොහෝ විට මෙම ක්‍රියාව ගැන සම්පූර්ණ පොතක් ලිවිය හැකිය. වගේ ... තියෙනවා FemaleLiteracyFraction. කාලයාගේ ඇවෑමෙන් විවිධ කරුණු සඳහා එම දත්ත විමසීමටද ඔබට හැකිය. සම්පූර්ණ ලැයිස්තුවක් සඳහා, යොමුව බලන්න.

රූප විස්තරය මෙහි ඇතුළත් කරන්න

දිග 26 ස්නිපටය

PolarPlot[Sin[5θ],{θ,0,π}]

වඩාත් රසවත් කුමන්ත්‍රණයක් සඳහා කාලය. PolarPlotහුදෙක් ධ්‍රැවීය ඛණ්ඩාංකවල කුමන්ත්‍රණයකි. දී ඇති x සඳහා y නියම කිරීම වෙනුවට, දී ඇති කෝණයක් සඳහා අරය r නියම කරන්න θ:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

දිග 25 ස්නිපටය

{{1,5},{2,3},{7,4}}.{8,9}

සමහර දෛශික ගණිත සඳහා අපට ප්‍රමාණවත් අක්‍ෂර තිබේ. ඉහත දැක්වෙන්නේ 2x3 න්‍යාසයක අනුකෘති ගුණ කිරීම සහ 2-දෛශික පේළිය:

{53, 43, 92}

දිග 23 ස්නිපටය

Rotate[Rectangle, Pi/2]

හෙහ්. හෙහෙ. ඔබ සිතන්නේ මෙය කරන්නේ කුමක්දැයි ඔබ දන්නා බවයි. නමුත් ඔබ එසේ කරන්නේ නැහැ. Rectangleතනිවම නම් කරන ලද ශ්‍රිතයක් පමණි. ඇත්ත වශයෙන්ම සෘජුකෝණාස්රයක් නියෝජනය කරන වස්තුවක් ලබා ගැනීම සඳහා, ඔබට එම ශ්‍රිතය සමහර පරාමිතීන් සමඟ ඇමතිය යුතුය. ඔබ භ්‍රමණය වීමට උත්සාහ කරන විට කුමක් සිදුවේ යැයි ඔබ සිතන්නේද Rectangle? මෙය:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

දිග 22 ස්නිපටය

30~ElementData~"Color"

සාදන ලද තවත් *Dataකාර්යයක්. ඔව්, රසායනික මූලද්‍රව්‍ය සඳහා, ඔබට ඒවායේ පරමාණුක ක්‍රමාංකය, ද්‍රවාංකය සහ නම වැනි දේ පමණක් නොලැබේ ... කාමර උෂ්ණත්වයේ දී ඔබට ඒවායේ වර්ණය ලබා ගත හැකිය. ඉහත දැක්වෙන්නේ සින්ක් වල වර්ණයයි:

SlateGray

දිග 21 ස්නිපටය

Integrate[E^(-x^2),x]

කලකට පෙර අපට අවකලනය තිබුණි. ඒකාබද්ධ වීමේ කාලය. ගණිතයට නිශ්චිත හා අවිනිශ්චිත අනුකලනයන් හැසිරවිය හැකිය. විශේෂයෙන්, Integrateඔබට නිශ්චිත විසඳුමක් ලබා දෙනු ඇති අතර, එය ටොන් ගණනක සම්මත අනුකලනයන් හා ඒකාබද්ධ කිරීමේ ක්‍රමවේදයන් සමඟ කටයුතු කළ හැකිය (සංඛ්‍යාත්මක ප්‍රති results ල සඳහා, තිබේ NIntegrate). ඔබේ ගණනය කිරීම ඔබ දන්නේ නම්, ඉහත ගවුසියානු අනුකලනය ඇත්ත වශයෙන්ම සංවෘත ස්වරූපයක් අවිනිශ්චිත අනුකලනයක් නොමැති බව ඔබ දැක ඇති ... දෝෂ ශ්‍රිත සංවෘත ආකෘතිය සලකා බැලුවහොත් මිස , එනම්. ගණිතමය ප්‍රතිලාභ:

1/2 Sqrt[π] Erf[x]

දිග 20 ස්නිපටය

"Sun"~StarData~"Age"

නැවත සාදන ලද දත්ත වෙත . *Dataඔබට සිතිය හැකි සෑම දෙයක් සඳහාම අවම වශයෙන් දුසිම් දෙකක් වත් කාර්යයන් තිබිය යුතුය . ඒ සෑම එකක්ම ඔබට අවශ්‍ය දත්ත සඳහා අනන්‍යතාවයක් සහ දේපලක් (හෝ දේපල ලැයිස්තුවක්) ලබා ගනී. ඉහත දැක්වෙන්නේ ඔබට ලබා ගත හැකි කෙටිම එකකි Sun, Starසහ Ageසියල්ලම ඉතා කෙටි බැවින් මෙම අංගය පෙන්වීමට මට බලා සිටිය නොහැක.

ඔව්, මම ගණිතමය (9 සිට) ඒකක සමඟ ප්‍රමාණවලට සහය දක්වන බව සඳහන් කළාද? (පසුව වැඩි විස්තර.) ඉහත ඇගයීමට ලක් කරන්නේ:

Quantity[4.57*10^9, "Years"]

ලෙස දර්ශනය වේ

රූප විස්තරය මෙහි ඇතුළත් කරන්න

දිග 19 ස්නිපටය

MandelbrotSetPlot[]

ඔව් ... ඉතා ප්‍රයෝජනවත් කාර්යයක් ... මම එය සෑම විටම භාවිතා කරමි . (සමහර විට, ගණනය කළ හැකි ඕනෑම දෙයකට සහාය දැක්වීමට ඔවුන්ගේ ආශාව මඳක් go තට යා හැකිය ...)

ගණිතමය ග්‍රැෆික්ස්

ඔවුන්ගේ ආරක්ෂාව සඳහා, ශ්‍රිතය ඊට වඩා ටිකක් ප්‍රයෝජනවත් වේ: ඔබට කුමන්ත්‍රණය කිරීමට අවශ්‍ය ප්‍රස්ථාරයේ විශේෂ කොටසක් ඔබට ලබා දිය හැකිය.

දිග 18 ස්නිපටය

PetersenGraph[7,2]

ගණිතමය 8 සිට, එය ප්‍රස්ථාරය යනු කුමක්දැයි වටහා ගනී, එබැවින් එය සියලු ආකාරයේ ප්‍රස්තාර න්‍යායට සම්බන්ධ කාර්යයන් සමඟ පැමිණේ. එය ගණිතමය නොවේ, එයට බිල්ට් ටොන් ගණනක් ඇතුළත් නොවේ නම්. ඉහත දැක්වෙන්නේ සාමාන්‍යකරණය කරන ලද පීටර්සන් ප්‍රස්ථාරයක් සඳහා ප්‍රස්ථාර දත්ත ය . එය හැසිරවිය හැකි සත්‍ය දත්ත ව්‍යුහය නිපදවයි, නමුත් ගණිතය වහාම එම ප්‍රස්ථාර දත්ත පෙන්වයි ... ප්‍රස්ථාරිකව:

ගණිතමය ග්‍රැෆික්ස්

දිග 17 ස්නිපටය

Plot[x^x,{x,0,2}]

අවසාන වශයෙන් කිසියම් කුමන්ත්‍රණයක් කිරීමට ප්‍රමාණවත් චරිත. ඉහත දැක්වෙන්නේ සැබවින්ම ඒක මාන කුමන්ත්‍රණයක සරලම උදාහරණයයි. පසුව සිසිල් බිම් පෙන්වීමට මම පොරොන්දු වෙමි

ගණිතමය ග්‍රැෆික්ස්

දිග 15 ස්නිපටය

{##4,#,#2,#3}&

මෙය වඩාත් ප්‍රබල ලක්ෂණ දෙකක් පෙන්වයි (ගොල්ෆ් ක්‍රීඩා කිරීම සඳහාද ප්‍රයෝජනවත් වේ). මුළු දේම නම් නොකළ පිරිසිදු ශ්‍රිතයක් වන අතර lambdaඑය පයිතන් හි s සමඟ සැසඳිය හැකිය . පිරිසිදු ශ්‍රිතය සරලවම අවසන් වන්නේ a &. මෙම ක්‍රියාකරුට ඉතා අඩු ප්‍රමුඛතාවයක් ඇත, එමඟින් සාමාන්‍යයෙන් එහි ඉතිරිව ඇති සියල්ල ඇතුළත් වේ. පිරිසිදු ශ්‍රිතයක තර්ක සමඟ යොමු කරනු ලැබේ #, සමහර විට වෙනත් දේ අනුගමනය කරයි. පළමු තර්කය #හෝ #1, දෙවැන්න #2යනාදිය ය.

අනෙක් ලක්ෂණය වන්නේ Sequenceඑස්. මේවා මූලික වශයෙන් වෙනත් භාෂාවල ස්ප්ලැට් වැනි ය. අනුක්‍රමයක් යනු එය වටා ඇති ලැයිස්තුවක් නොමැතිව ලැයිස්තුවකට සමානය - එය වචනාර්ථයෙන් සාරධර්ම මාලාවක් පමණක් වන අතර එය ලැයිස්තු, ක්‍රියාකාරී තර්ක ආදියෙහි භාවිතා කළ හැකිය. ##විශේෂයෙන් සියලු පිරිසිදු ක්‍රියාකාරී තර්කවල අනුක්‍රමයකි. ##2යනු දෙවන සිට ආරම්භ වන සියලු තර්කවල අනුක්‍රමයකි. ඒ නිසා අපි ඉහත කාර්යය නම් නම් f, සහ සමාන එය හැඳින්වූයේ

f[1,2,3,4,5]

අපිට ලැබෙනවා

{4,5,1,2,3}

එබැවින් ශ්‍රිතය ආදාන තර්ක 3 මූලද්‍රව්‍ය වමට භ්‍රමණය කරයි. ලැයිස්තුවට සමතලා කර ඇති බව ##4සඳහන් කරන්න 4,5.

දිග 12 ස්නිපටය

D[x^y^x,x,y]

අර්ධ අවකලනය. Dපළමු ප්‍රකාශනය එහි අනෙක් තර්කවලට සාපේක්ෂව අනුපිළිවෙලින් වෙන්කර හඳුනාගත හැකි අතර ප්‍රති result ලයක් ලෙස සංකේතාත්මක ප්‍රකාශනයක් ඔබට ලබා දෙනු ඇත. එබැවින් ඉහත දැක්වෙන්නේ d² (x ^ y ^ x) / dxdy (මෙහි d s අර්ධ වශයෙන්), ගණිතමය වාර්තා කරයි

x^y^x (y^(-1 + x) + y^(-1 + x) Log[x] + x y^(-1 + x) Log[x] Log[y]) + 
  x^(1 + y^x) y^(-1 + x) Log[x] (y^x/x + y^x Log[x] Log[y])

දිග 9 ස්නිපටය

Exp[I*Pi]

අපි තවම සංකීර්ණ ගණිතයක් කර නැත! ඔබට පෙනෙන පරිදි, πඇත්ත වශයෙන්ම අන්වර්ථයකි Pi. කෙසේ වෙතත්, ඉහත ඇත්ත වශයෙන්ම පූර්ණ සංඛ්‍යාව නිවැරදිව ලබා දෙනු ඇත -1.

දිග 8 ස්නිපටය

Sunset[]

ඔව්. පිස්සු බිල්ට් ගැන කතා කරන්න. ඔබගේ වර්තමාන ස්ථානයේ ඊළඟ හිරු බැස යෑමේ දිවා කාල වස්තුවක් සැබවින්ම ලබා දෙන පරාමිතීන් නොමැතිව. එය වෙනත් දිනයන්, වෙනත් ස්ථාන සඳහා පරාමිතීන් ද ගනී. මෙන්න එය මට දැන් පෙනෙන්නේ මෙයයි:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

දිග 7 ස්නිපටය

9!/43!!

මෙම ස්නිපටය සිසිල් දේවල් කිහිපයක් පෙන්වයි.

ගණිතයට හුදෙක් සාදන ලද සාධක සාධක ක්‍රියාකරුවෙකු නොමැත !, එයට ද්විත්ව සාධක සාධකයක් ද ඇත !!(එය අනෙක් සෑම සංඛ්‍යාවක්ම nපහළ සිට පහළට ගුණ කරයි 1). තවද, එය අත්තනෝමතික-නිරවද්‍ය නිඛිල සඳහා සහය දක්වයි. මෙම 43!!පසුගිය ඉලක්කම් දක්වා, හරියටම ඇගයීමට ලක් කරනු ඇත. තවද, තාර්කික සංඛ්‍යා ද නිවැරදිව ඇගයීමට ලක් කෙරේ. එබැවින්, සංඛ්‍යා හා හරය යන දෙකම පූර්ණ සංඛ්‍යා ඇති බැවින්, ගණිතය හැකිතාක් දුරට භාග අඩු කර පසුව ඔබට ඉදිරිපත් කරනු ඇත

128/198893132162463319205625

ඇත්ත වශයෙන්ම, ඔබට අවශ්‍ය විටෙක පාවෙන භාවිතා කළ හැකිය, නමුත් පොදුවේ ගත් කල, ඔබේ ආදානයේ පාවෙන අඩංගු නොවේ නම්, ඔබේ ප්‍රති result ලය හරියටම වනු ඇත.

දිග 4 ස්නිපටය

Here

අපි ගණිතයේ පිස්සු ගොඩනංවන ලද ධනය සමඟ ආරම්භ කළ කාලයයි. ඉහත දැක්වෙන්නේ එය ටින් එකේ පවසන දේ කරන අතර (මට නම්) එය ඇගයීමට ලක් කරයි GeoPosition[{51.51, -0.09}].

දිග 3 ස්නිපටය

x-x

මුල් ෆැක්ටොයිඩ් ප්‍රදර්ශනය කිරීම සඳහා : ඉහත ක්‍රියාකරන්නේ xතවම අර්ථ දක්වා නොමැති වුවද ඇත්ත වශයෙන්ම 0එම අවස්ථාවේ ප්‍රති result ලය වනු ඇත .

දිග 2 ස්නිපටය

3x

පදාර්ථය හරහා ගුණ කිරීම! හදුනාගැනීමක් අවසන් වී තවත් එකක් ආරම්භ වන බව පැහැදිලි නම්, *ඒවා එකට ගුණ කිරීම සඳහා ඔබට හෝ සුදු අවකාශයක් අවශ්‍ය නොවේ . මෙය තවම අගයන් නොමැති නූල් සහ විචල්‍යයන් ඇතුළුව සෑම දෙයක්ම සමඟ ක්‍රියා කරයි. ගොල්ෆ් ක්‍රීඩා කිරීම සඳහා ඉතා පහසුය. ;)

දිග 1 ස්නිපටය

π

කුමක්දැයි අනුමාන කරන්න, එය පයි. ඇත්ත වශයෙන්ම, එය ආසන්න වශයෙන් පාවෙන ලක්ෂ්‍ය නිරූපණයක් නොවේ, එය හරියටම පයි - එබැවින් මෙය භාවිතා කරන සියලු ආකාරයේ සංකීර්ණ හා ත්‍රිකෝණමිතික ශ්‍රිතයන් දන්නා නම් නිශ්චිත ප්‍රති results ල ලබා දෙනු ඇත.

ෆැක්ටොයිඩ්

ගණිතයට සංකේතාත්මක හැසිරවීමක් කළ හැකි බැවින් විචල්‍යයන්ට ඒවා සමඟ වැඩ කිරීමට අගයන් අවශ්‍ය නොවේ.


19
ස්නිපෙට් 23 තරමක් කුතුහලය දනවන කරුණකි. ඔබ එසේ කළා Translate[Scale[Rectangle, 80], {0, 0, 100}]නම් විශාල වචනය Rectangleඔබේ මොනිටරය ඉදිරිපිට පාවෙන බවක් පෙනෙන්නට තිබේද?
කැල්වින්ගේ විනෝදාංශ

54
@ කැල්වින්ගේ විනෝදාංශය එය අත්හදා බැලීය ... අවාසනාවන්ත zඕෆ්සෙට් එකක් තෝරා ගත්තේය ... මගේ මුහුණට ගැසුවේය .
මාටින් එන්ඩර්

46
නිල ගණිත වෙබ් අඩවිය මේ සඳහා නියත වශයෙන්ම සම්බන්ධ විය යුතුය.
කැරිඩෝර්ක්

7
uri durron597 එය සංකේතයක් ලෙස තබා ගැනීමෙන් සහ ඔබගේ සියලු ත්‍රිකෝණමිතික හා සංකීර්ණ කාර්යයන් a සමඟ කළ යුතු දේ පිළිබඳව දැනුවත් කිරීම.
මාටින් එන්ඩර්

16
ජනප්‍රිය මාටින් බොට්නර් ගණිතමය පිළිතුරක් පළ කර ඇති බව දුටු විට, ජනප්‍රිය තරඟයක් ජයග්‍රහණය කිරීමට මට අවස්ථාවක් නොමැති බව මම දැන සිටියෙමි. ඔබ සර් සැබෑ මායාකාරියකි.
ඇලෙක්ස් ඒ.

187

කුප්‍රකට ෂේක්ස්පියර් ක්‍රමලේඛන භාෂාව

ෂේක්ස්පියර් ක්‍රමලේඛන භාෂාව 2001 දී ස්වීඩන් සිසුන් දෙදෙනෙකු වන කාල් හැසල්ස්ට්‍රෝම් සහ ජෝන් ඔස්ලුන්ඩ් විසින් නිර්මාණය කරන ලද අතර එය කතුවරුන් ප්‍රකාශ කරන පරිදි එය ඒකාබද්ධ කරයි .

එකලස් කිරීමේ භාෂාවේ පරිශීලක-හිතකාමීත්වය සමඟ බේසික් හි ප්‍රකාශිතභාවය.

පිළිතුරු ඉහළ සිට පහළට යයි. එසේම, මා පැරණි හෝ පෙර ස්නිපෙට් වෙත යොමු වීම සාමාන්‍ය දෙයකි.

( මා සඳහා සබැඳිය: සංස්කරණය කරන්න )

ෆැක්ටොයිඩ්:

ෂේක්ස්පියර්ගේ කේතය, යමෙකු අපේක්ෂා කරන පරිදි, ෂේක්ස්පියර් නාට්‍යයකට සමාන වන අතර, එහිදී විචල්‍යයන් නාට්‍යයේ චරිත වන අතර ඒවායේ අගය වෙනස් වන්නේ “අපහාස” හෝ ප්‍රශංසා කරන විට ය.

දිග 1 ස්නිපටය:

I

ෂේක්ස්පියර්ගේ කේතය පනත් වලට බෙදී ඇති අතර, ක්‍රියාවන් "ජම්පර්-ටු" හේතු සඳහා දර්ශනවල බෙදා ඇත. පනතක් ලෙස Act Iඅර්ථ දැක්වීම යනු එය ක්‍රියාත්මක වන කේතයේ පළමු කොටස වනු ඇත, උදාහරණයක් ලෙස - නමුත් පමණක් නොවේ.

දිග 2 ස්නිපටය:

as

"අක්ෂර" අතර සංසන්දනාත්මකව භාවිතා කරයි.

දිග 3 ස්නිපටය:

day

මේ වන විට, එස්පීඑල් ඉතා වාචික යැයි ඔබට හැඟෙන්නට පුළුවන. හා අමුතුයි. ඔබ තවම කිසිවක් දැක නැත. day, එස්පීඑල් හි 1 වේ. සියලුම "ධනාත්මක" සහ "උදාසීන" නාම පද ලෙස සලකනු ලැබේ 1, එසේම සියලු "negative ණ" නාමයන් ලෙස සැලකේ -1.

දිග 4 ස්නිපටය:

rich

කුමක්ද rich? නාම පදයක්. එස්පීඑල් හි, නාමවිශේෂණ මගින් ඒවා අමුණා ඇති නාම පදයේ අගය දෙකින් ගුණ කරයි. ස්නිපෙට් 14 හි ක්‍රියාත්මක කිරීම බලන්න.

දිග 5 ස්නිපටය:

Act I

පළමු ස්නිපටය ක්‍රියාත්මක කිරීම. Act I: Hamlet must die!රෝමානු අංකයට පසුව ඇති සියල්ල විග්‍රහකයා විසින් නොසලකා හරින බැවින් , සියලු ක්‍රියාවන්ට මාතෘකාවක් ලබා දිය හැකිය .

දිග 6 ස්නිපටය:

better

සෑම භාෂාවකටම කොන්දේසි ඇති අතර එස්පීඑල් ද ඊට වෙනස් නොවේ. හැර, මෙය දීර් synt වාක්‍ය ඛණ්ඩයක් සහිත භාෂාවක් බැවින් (මම එය අමුතු යැයි සඳහන් කළාද?), එහි කොන්දේසි සහිත ප්‍රකාශයන් දිගු වනු ඇත. Ophelia ජුලියට් ඉල්ලා ඇති Am I better than you?වැනිය if (Ophelia > Juliet)බොහෝ "සාමාන්ය" භාෂා මත. ඇත්ත වශයෙන්ම, ඔබට අනෙක් පැත්තෙන් විමසිය හැකිය: Am I not better than you?සමාන වේ if (Ophelia < Juliet). =එස්පීඑල් වෙත පරිවර්තනය කරන්නේ කෙසේදැයි ඔබට දැනටමත් අනුමාන කළ හැකිය : as good as- කේත ස්නිපෙට් 2 භාවිතය.

කෙසේ වෙතත්, good/betterමෙම ෂේක්ස්පෙරියානු භාෂාවෙන් සැසඳීම් කළ හැකි එකම ක්‍රමය නොවේ, ඔබට ඕනෑම නාම පදයක් භාවිතා කළ හැකිය. ස්නිපෙට් 3 හි එකම මූලධර්මයම මෙහි ද අදාළ වන අතර “ධනාත්මක” නාමවිශේෂණවල වටිනාකම >ඇති අතර “negative ණ” යන්නෙන් අදහස් <වේ.

දිග 7 ස්නිපටය:

Juliet:

මෙය විචල්‍යයක ආයාචනයයි; මෙයින් පසු, ඔහුගේ / ඇයගේ උපදෙස් / ප්‍රකාශ / අනුගමනය කරනු ලබන ඕනෑම දෙයක්.

එස්පීඑල් හි සීමාවක් නම් එයට සීමිත විචල්‍ය සංඛ්‍යාවක් ඇත: රෝමියෝ, ජුලියට්, හැම්ලට්, ඔපීලියා, මැක්බත් සහ යනාදිය ෂේක්ස්පෙරියන් වැඩසටහනක දිස්වන “චරිත” සඳහා උදාහරණ කිහිපයක් වේ.

දිග 8 ස්නිපටය:

[Exeunt]

[Exeunt]සියලුම "අක්ෂර" "වේදිකාවෙන්" ඉවත් වන විට ස්ථානගත කර ඇත. චරිත අතර අන්තර්ක්‍රියාකාරිත්වය ගැන මට තව ටිකක් විස්තර කළ හැකිය. සාමාන්‍යයෙන් ඕනෑම එස්පීඑල් වැඩසටහනක අවසාන උපදෙස් වේ, [Exeunt]විශේෂයෙන් භාෂාවේ අග්‍ර "අක්‍ෂරය" නොවේ. තවත් උදාහරණයක් සඳහා, ස්නිපෙට් 27 බලන්න.

දිග 9 ස්නිපටය:

as bad as

අක්ෂර 9 ක් හුදෙක් =- ස්නිපටයක් භාවිතා කිරීම සඳහා 2. එස්පීඑල් අමුතු බව මා සඳහන් කර තිබේද? උදාහරණ සඳහා ස්නිපෙට් 30 බලන්න. (ඔව්, එය ප්‍රතිදානය කිරීමට එක් ක්‍රමයකට වඩා තිබේ)

දිග 10 ස්නිපටය:

difference

නිරූපණය කිරීමේ විසිතුරු ක්‍රමයක් -, අඩු කිරීමකි. එස්පීඑල් හි ගණිතමය මෙහෙයුම් ඔබට කළ හැකිය, එය නිවැරදි කර ගැනීමට ඔබට සම්පූර්ණ දිනයක් අවශ්‍ය වුවද.

ෆැක්ටොයිඩ් (මම කෙසේ හෝ කේත ස්නිපෙට් දහයකට ලඟා වීමට සමත් වූ බැවින්, අපි ටිකක් විවේකයක් ගෙන එස්පීඑල් ගැන තවත් ෆැක්ටෝයිඩ් එකක් ගනිමු)

ඔබේ ෂේක්ස්පෙරියන් කේතය එහි සියලු තේජසින් ධාවනය කිරීමට ඔබට අවශ්‍ය නම්, මෙම වෙබ් අඩවිය ඇත - මම එය මිනිත්තු පහකට පෙර සොයාගත් බැවින් මම තවමත් එය පරීක්ෂා කරමි. පරිවර්තකයෙකු භාවිතා කර එය සී වෙත පරිවර්තනය කිරීමට ක්‍රමයක් ද ඇත .

ශිෂ්ය නියමු බලපත්රය කේතය ධාවනය සඳහා තවත් වෙබ් අඩවිය වේ මේ එක ඔරකල් පීඑල් / SQL: අභ්යන්තර තවත් විරල භාෂාවට ශිෂ්ය නියමු බලපත්රය කේතය පරිවර්තනය විසින් ක්රියා කරන.

දිග 11 ස්නිපටය:

[Exit Romeo]

ඔව්! අන්තිමේදී මට චරිත අතර අන්තර්ක්‍රියා ගැන කතා කළ හැකිය! එහි වටිනාකම වෙනස් කිරීමට හෝ අන් අය සමඟ අන්තර් ක්‍රියා කිරීමට නම්, “චරිතයක්” වේදිකාවේ තිබිය යුතුය [Enter Romeo]. අක්ෂරයක් ආමන්ත්‍රණය කළත් එය නොපවතී නම්, ධාවන කාල දෝෂයක් ඇති අතර වැඩසටහන නතර වේ. මන්ද, එස්පීඑල් හි, විචල්‍යයන්ගේ වටිනාකම සකසා ඇත්තේ වේදිකාවේ සිටින අනෙක් චරිත විසින් ප්‍රශංසා කරන ලද හෝ අපහාස කරන ලද නම් ප්‍රමාණයෙනි. මගේ කොර වූ පැහැදිලි කිරීම නිසා ඇතිවිය හැකි යම් ව්‍යාකූලතාවයක් ඉවත් කිරීමට මම ආදර්ශයක් දැමිය යුතු යැයි මට හැඟේ, නමුත් සමහර විට ස්නිපෙට් කිහිපයක් ප්‍රමාද කිරීම වඩාත් සුදුසුය.

දිග 12 ස්නිපටය:

Remember me.

එස්පීඑල් ඉතා "මූලික" ය, හරි - නමුත් එහි තොග තිබේ! නිදසුනක් වශයෙන්, රෝමියෝ ජුලියට්ට “ඔහුව මතක තබා ගන්න” යැයි පැවසූ විට, ඔහු ඇත්ත වශයෙන්ම තම ආදරණීයයාට පවසන්නේ රෝමියෝගේ වටිනාකම ඇගේ තොගයට තල්ලු කරන ලෙසයි. වටිනාකම ඉහළ නැංවීම සිදු කරනුයේ Recall your happy childhood!, හෝ Recall your love for me, හෝ මූලික වශයෙන් ආරම්භ වන ඕනෑම වාක්‍යයකින් Recall- ඉතිරිය ස්නිපෙට් 22 වැනි කලාත්මක ධාවකයකි.

දිග 13 ස්නිපටය

Let us return

ෂේක්ස්පෙරියානු ක්‍රමය a goto. ක්‍රියා සහ දර්ශන ප්‍රයෝජනවත් වන්නේ මෙහිදීය. රෝමියෝ ජුලියට්ට පැවසුවහොත් we shall return to Act II(ඔව්, නැවතත්, එය ලිවීමට විවිධ ක්‍රම තිබේ), වැඩසටහන කේතයේ නිශ්චිත කොටස වෙත පනින්න. එය කොන්දේසි සහිත ප්‍රකාශ සමඟ ද දැකිය හැකිය.

දිග 14 ස්නිපටය

my little pony

ඔව්, එය 80 දශකයේ නැවත මාලාවක් විය. මෙන්න, එය 2*1. මන්ද? A ponyයනු (තරමක්) ධනාත්මක නාම පදයක් වන අතර littleඑය නාම පදයකි . ඉතින්, 3 සහ 4 ස්නිපෙට් මතක තබා ගැනීම, අපට little = "2 *"සහ pony = "1".

දිග 15 ස්නිපටය

Speak thy mind!

එස්පීඑල් වැඩසටහනක දී, ඔබ මෙය බොහෝ දේ දකිනු ඇත (හෝ Speak your mind!, එය සමාන වේ) . මෙය ඔබේ පරිගණකය භාවිතා කරන අක්ෂර කට්ටලය මත පදනම්ව, එක් එක් "අක්ෂර" වල අගය ඉලක්කම්, අකුරු හෝ වෙනත් ඕනෑම දෙයකින් ප්‍රතිදානය කරයි. ද තිබෙන සංඛ්යාත්මක ආකෘති පත්රය පමණක් outputting වුවත්, පාහේ එකම දෙයක් කරන්නේ කියලා.Open your mind.

දිග 16 ස්නිපටය

You are nothing!

සැබෑ ජීවිතයේ දී යමෙකු ඔබට මෙය පැවසූ විට, ඔබට මානසික අවපීඩනයක් දැනෙනු ඇත. ෂේක්ස්පියර් වැඩසටහන් වලදී ඔපීලියා හැම්ලට්ට මෙය පැවසූ විට, හැම්ලට්ට වැඩක් නැති බවක් දැනේ. මෙමගින් කුමක් වෙයිද? ඒ Hamlet = 0.

දිග 17 ස්නිපටය

Ophelia, a wench.

තිර රචනයක දී, සැබෑ නාට්‍යය ආරම්භ වීමට පෙර, චරිත ඉදිරිපත් කළ යුතුය. බොහෝ ක්‍රමලේඛන භාෂාවල, විචල්‍යයන් භාවිතයට පෙර ප්‍රකාශ කළ යුතුය. එස්පීඑල් යනු තිර රචනයකට සමාන ක්‍රමලේඛන භාෂාවක් බව දුටු විට, ඔබ එහි විචල්‍යයන් ප්‍රකාශ කරන්නේ, වැඩසටහන අතරතුර පෙනී සිටින ඒවා මොනවාදැයි සඳහන් කරමිනි.

නමුත් "වෙන්ච්" යන්නෙන් අදහස් කරන්නේ කුමක්ද? එය නිශ්චිත (හා සිසිල්) දත්ත වර්ගයේ නමක් බව එයින් අදහස් වේද? හොඳයි ... මම ඔබව බලාපොරොත්තු සුන් කිරීමට අකමැතියි, නමුත් එයින් කිසිවක් අදහස් නොකෙරේ: කොමාවෙන් පසු සෑම දෙයක්ම විග්‍රහ කරන්නා විසින් නොසලකා හරිනු ලැබේ, එයින් අදහස් කරන්නේ ඔබට සිතිය හැකි අතිශය කෝපාවිෂ් drive ධාවකය එහි තැබිය හැකි බවයි.

දිග 18 ස්නිපටය

lying sorry coward

-4සියලු භූමික ජීවීන් සඳහා. මන්ද? මොකද 2*2*(-1) = -4.

දිග 19 ස්නිපටය

Romeo:
 Remember me.

අවසානයේ!!! මට අවසාන වශයෙන් සම්පූර්ණ නිවැරදි වාක්‍ය ඛණ්ඩයක් ලබා දිය හැකිය (කෙටි එකක් වුවද)! ඔබ ස්නිපෙට් 12 භාවිතා කරන ආකාරය මෙයයි: පළමුව ඔබ කතා කරන්නේ කවුරුන්දැයි ප්‍රකාශ කරන්න, ඊළඟ පේළියේ ඔබ "දෙබස්" ලියයි. සාමාන්‍යයෙන්, වේදිකාවෙහි ඇත්තේ "අක්ෂර" දෙකක් පමණි. ඔබට තවත් "චරිතයක්" අවශ්‍ය වූ විට, ඔබ වේදිකාවෙන් එකක් ගෙන ඔහු වෙනුවට නව චරිතය ආදේශ කරන්න.

දිග 20 ස්නිපටය

cube of thy codpiece

මට මේ සඳහා තව ටිකක් විස්තාරණය කිරීමට අවශ්‍ය විය, නමුත් සත්‍යය කිවහොත්, මා විසින් ඉදිරිපත් කරන ලද දේවල් මෙම ස්නිපෙට් දිගට තවමත් කෙටි ය. හා, එම නිසා, මම ඔබට මෙම, ජීවියෙක් වන ගෙන -1- නිසා (-1) 3 = -1 (සහ codpieceඔවුන් ඉන්නේ බලවත් අපහසුතාවයට හා සියලු දා පටන් මේ දක්වා, "නිෂේධනීය" නාම පදයක් ඇත). එස්පීඑල් තවත් on ාතීය හා වර්ග මූලයන් ලෙස තවත් විස්තීර්ණ ගණිතමය මෙහෙයුම් කිහිපයක් තේරුම් ගනී .

ෆැක්ටොයිඩ් (තවත් එකක්, අපි තවත් සන්ධිස්ථානයකට පැමිණ ඇති බැවින්)

Shakesperian දී "Hello World" වැඩසටහන 89 රේඛා හා චරිත 2400 කට වඩා වැඩි, දිගු කාලයක් මෙහි දක්නට ලෙස .

දිග 21 ස්නිපටය

Listen to your heart.

ස්නිපෙට් 15 හි ඔබ යමක් ප්‍රතිදානය කළේය; මෙන්න, ඔබ වැඩසටහනට අංකයක් ඇතුළත් කරයි. ඔබට අක්ෂරයක් ඇතුළත් කිරීමට අවශ්‍ය නම්, Open your mind.ඒ වෙනුවට ඔබ භාවිතා කරනු ඇත. තවද, මෙම අගය කථා කරන "චරිතය" තුළ ගබඩා වනු ඇති බව අමුතුවෙන් කිව යුතු නැත.

දිග 22 ස්නිපටය

Recall your childhood!

ස්නිපෙට් 12 හි විස්තර කර ඇති පරිදි, අට්ටාලයකින් පූර්ණ සංඛ්‍යාවක් පොප් කිරීම මෙය සිදු කරයි. නිදසුනක් වශයෙන්, ඔපීලියා ඉහත සඳහන් වාක්‍යය හැම්ලට්ට පැවසූ විට, එය හැම්ලට් සිය තොගයෙන් පූර්ණ සංඛ්‍යාවක් ගෙන එම අගය උපකල්පනය කරයි.

ඇත්ත වශයෙන්ම, වචනය recallවාක්‍යය ආරම්භ කරන තාක් කල්, ඔබේ නිර්මාණාත්මක ෂේක්ස්පෙරියන් මනස ආශා කරන ඕනෑම දෙයකින් ඔබට ඉතිරි කොටස පුරවා ගත හැකිය.

දිග 23 ස්නිපටය

Are you better than me?

ස්නිපටය ක්‍රියාත්මක කිරීම 6. “චරිතයක්” වෙනත් කෙනෙකුට මෙවැනි ප්‍රශ්නයක් ඇසූ විට, ඔහු / ඇය කරන්නේ කුමක්ද යන්න if (x > y)වඩාත් පොදු ක්‍රමලේඛන භාෂාවන්ට සමාන වේ . මට තවත් අක්ෂර ලබා ගත හැකි වන තෙක් මෙම උපදෙස් පසු විපරම් කිරීම ප්‍රමාද කළ යුතුය.

දිග 24 ස්නිපටය

[Enter Romeo and Juliet]

ඔව්, "අක්ෂර" යුගල වශයෙන් ඇතුළත් විය හැකිය. එක් "චරිතයක්" වේදිකාවට ඇතුළු වීම අවශ්‍ය නොවේ.

දිග 25 ස්නිපටය

remainder of the quotient

අක්ෂර 25 ක් ලිවීමට පමණි %. කොට් .ාශයක ඉතිරි කොටස සඳහා අක්ෂර 25 ක්. එය භාවිතා කිරීමට? හොඳයි, එය ඊටත් වඩා විශාලයි - ස්නිපෙට් 75 බලන්න.

දිග 26 ස්නිපටය

Let us return to scene II.

මෙන්න, gotoඑස්පීඑල් හි, එය ක්‍රමලේඛන භාෂාවකින් අපේක්ෂා කරන පරිදි ක්‍රියා කරයි. දෙයක් නම්: ඔබට එකම ක්‍රියාවක දර්ශන අතර සහ ක්‍රියාවන් අතරට පනින්න පුළුවන්; නමුත් ඔබට විවිධ ක්‍රියාවන්හි දර්ශන අතරට පනින්න බැහැ.

දිග 27 ස්නිපටය

[Exeunt Ophelia and Hamlet]

Exitඑස්පීඑල් හි නාට්‍යමය ස්වභාවය අනුව සම්ප්‍රදායට අනුකූලව “චරිත” එකකට වඩා වැඩි ගණනක් වේදිකාවෙන් ඉවත්ව යන විට, “එක්සෙන්ට්” යන ලතින් වචනය භාවිතා වේ. සමහර විට එය ස්නිපෙට් 8 මගින් ප්‍රතිස්ථාපනය කළ හැකිය.

දිග 28 ස්නිපටය

Scene I: Ophelia's flattery.

දර්ශනයක් ප්රකාශ කිරීම. ඔබ මා සමඟ සාර්ථකව කටයුතු කර ඇත්දැයි ඔබට දැනටමත් අපේක්ෂා කළ හැකි පරිදි, වැදගත් දෙය නම් Scene I, ඉතිරිය කලාත්මක දියර ය.

පනත / දර්ශනය අංකනය කිරීමෙන් පසුව පෙළට යොමු කරන සමහර සම්පාදකයින් ( එස්පීඑල් සිට සී දක්වා සම්පාදනය කරන ලද, පයිතන්හි ලියා ඇත ) ඇත. වඩාත් තාර්කික වුවත් (සියල්ලට පසු, නාට්‍යයක් තුළ, "අපි නැවත පනත වෙත යමු" වැනි රේඛා පවසන චරිත මෝඩ යැයි සිතිය හැක), මම මුල් ක්‍රමයට ඇලී සිටිමි.

දිග 29 ස්නිපටය

You pretty little warm thing!

ඔව්, තවත් නියතයක් ( අංක ගණිතමය මෙහෙයුම් සඳහා අපට තවත් අක්ෂර අවශ්‍ය බැවින් ). මෙය එක හා සමානයි 8, මන්ද 2*2*2*1 = 8.

දිග 30 ස්නිපටය

You are as cowardly as Hamlet!

උදාහරණයක් ලෙස රෝමියෝට මෙය කීමෙන් අදහස් වන්නේ Romeo = Hamletඑයයි. ස්නිපෙට් 9 වගේ.

ෆැක්ටොයිඩ් (ඔව්, තවත් වැදගත් සලකුණක් ළඟා විය!)

මෙම භාෂාව සින්ටැක්ස් විශ්ලේෂණ පා course මාලාවක පැවරුමක් සඳහා නිර්මාණය කරන ලදි - මේ අනුව, කතුවරුන් විසින් කිසිදු එස්පීඑල් සම්පාදකයෙකු නිර්මාණය කර නොමැත. තවත්: එස්පීඑල් හි කතුවරුන් 2001 සිට භාෂාවේ කිසිවක් වෙනස් කර නොමැති බව පෙනෙන්නට ඇති හෙයින්, ඔවුන්ගේ නිර්මාණය සමඟ ඔවුන්ගේ සබඳතා බිඳ දමා ඇති බව පෙනේ ...

දිග 31 ස්නිපටය

Am I as horrid as a flirt-gill?

ඔව්, මම දනිමි, එය ස්නිපෙට් 23 තරමක් පුනරාවර්තනය වේ, කෙසේ වෙතත්, මෙන්න, අපි "ආලවන්ත හැඟීම් පෑමක්" සමඟ කථා කරන "චරිතය" සංසන්දනය කරමු (ඔබ කැමති නම්, if (Ophelia == -1)). වැඩේ ...

දිග 32 ස්නිපටය

If so, let us return to scene I.

... දැන් මට thenඑස්පීඑල්, ​​සහ කොන්දේසි සහිත පැනීම සහ ලූප ක්‍රියාත්මක කිරීමේ ෂේක්ස්පෙරියන් ක්‍රමය හඳුන්වා දිය හැකිය . නිදසුනක් ලෙස, ඔබට රෝමියෝගේ වටිනාකම උපකල්පනය කර 0, වෙනත් කාර්යයක් කරන අතරතුර ඔහුගේ වටිනාකම වැඩි කර ගත හැකි අතර, ඔහු 10 ට ළඟා වන විට නතර කර, පසුව වැඩසටහන සමඟ ඉදිරියට යා හැකිය.

දිග 33 ස්නිපටය

If not, let us return to scene I.

අප විසින් පරීක්‍ෂා කරන ලද කොන්දේසිය සාවද්‍ය නම්, ඒ වෙනුවට අපට වෙනත් දර්ශනයකට ඉදිරියට යා හැකි බව මතක් කිරීමක් පමණි .

දිග 34 ස්නිපටය

Open your mind! Remember yourself.

පේළි දෙකක් උපදෙස්, යිපී! පළමුවැන්නා චරිතයක් කියවන අතර, දෙවැන්න එය අනෙක් චරිතයේ මතක ගබඩාවට තල්ලු කරයි.

දිග 35 ස්නිපටය

Act I: Death!

Scene I: Oh, shit.

පනතක් සහ දර්ශනයක් ප්‍රකාශ කිරීමේ නිසි ක්‍රමය. රසවත් ලෙස කලාත්මක හතු එකතු කරන්න.

දිග 36 ස්නිපටය

Thou art as sweet as a summer's day!

කථා කරන "චරිතයට" වටිනාකමක් ලැබෙනු ඇතැයි පැවසීමේ තවත් ක්‍රමයක් 1- ගිම්හාන දින ලස්සන හා ප්‍රසන්න නිසා.

දිග 37 ස්නිපටය

Art thou more cunning than the Ghost?

ඔපීලියා මෙම ප්‍රශ්නය හැම්ලට්ගෙන් විමසීමෙන් අදහස් කරන්නේ මෙය අඩු කියවිය හැකි ක්‍රමලේඛන භාෂාවකට පරිවර්තනය if (Hamlet > the Ghost)කිරීමයි. එය නැවත නැවතත් 23 වන කොටසයි, ඔව් - නමුත් එය ඔබට පෙන්වන්නේ "අක්ෂර" එකිනෙකාට වඩා හොඳ නම් ඒවා ඇසීමට අවශ්‍ය නොවන බවයි: වෙනත් ඕනෑම ප්‍රශ්නයක් ද ක්‍රියාත්මක වනු ඇත.

දිග 38 ස්නිපටය

[Enter the Ghost, Romeo and the Ghost]

ඔව්, මම දෙවරක් "චරිතයක්" අමතමි - වැඩසටහන මට දෝෂයක් ලබා දීමට අවශ්‍ය නිසා. දැනටමත් වේදිකාවේ ඇති "චරිතයක්" ඇමතීම, හෝ පිටවීමට නොපැමිණෙන කෙනෙකුට පැවසීම, පාර්සර් / සම්පාදකයාට මහත් ශෝකයක් ගෙන දේ.

දිග 39 ස්නිපටය

the sum of a fat lazy pig and yourself!

සම්පුර්ණ උපදෙස් වඩා හොඳ පෙනුමක් ඇති මෙය, මම ඔබට එය දෙන්නම්, නමුත් ... මෙන්න අපගේ පළමු අංක ගණිතමය මෙහෙයුම! ඇත්තෙන්ම මේ සියල්ලෙන් අදහස් කරන්නේ කුමක්ද? හොඳයි, pigඅපිරිසිදු සතෙකි (රසවත් වුවත්), එබැවින් එය සමාන වේ -1, නාම පද දෙකක් ඇත, එනම් fat lazy pigසමානයි 2*2*(-1) = -4. නමුත් කුමක් ද yourself? එය ප්‍රත්‍යාවර්තක සර්වනාමයක් මිස නමක් හෝ නාම පදයක් නොවේ. හොඳයි, මතක තබා ගන්න එස්පීඑල් පදනම් වී ඇත්තේ "අක්ෂර" අතර සංවාද මත ය; මේ අනුව, yourselfවේදිකාවේ අනෙක් "චරිතය" යන්නෙන් අදහස් කෙරේ. ඉතින්, අපි අවසානයට පැමිණෙන අතර, "තරබාරු කම්මැලි pig රෙකුගේ එකතුවක් සහ ඔබම" ඇත්ත වශයෙන්ම , -4 + x.

දිග 40 ස්නිපටය

the sum of a squirrel and a white horse.

ඔව්, තවත් මුදලක්, නමුත් මෙය ස්නිපෙට් 39 ට වඩා සරල ය. මෙය හුදෙක් 1 + 2- 3, මගේ ගණිතය නිවැරදි නම්.

ෆැක්ටොයිඩ් (මෙම කලාත්මක හතළිස් හතළිහට පසුවත් මා සමඟ සිටීද? ඔබට ත්‍යාගයක් ලැබිය යුතුය.)

එස්පීඑල් එහි 1.2.1 අනුවාදයෙන් මෙතැනින් බාගත හැකිය .

දිග 41 ස්නිපටය

Juliet:
 Speak thy mind!

[Exit Romeo]

සමහර විට, "අක්ෂර" වේදිකාවට කැඳවනු ලබන්නේ ඒවායේ වටිනාකම වෙනස් කිරීම සඳහා පමණි - එය සැබෑ නාට්‍යයක දී තරමක් විකාරයකි. කෙසේ හෝ වේවා, මෙන්න, ජුලියට් ඇගේ ආදරණීය රෝමියෝට ඔහුගේ ගබඩා කළ වටිනාකම මුද්‍රණය කිරීමට සලස්වයි, ඉන්පසු ඔහු වේදිකාවෙන් ඉවත් වේ.

දිග 42 ස්නිපටය

Speak YOUR mind! You are as bad as Hamlet!

නැවතත් එක් පේළියක උපදෙස් දෙකක් (අපට බහුවිධ තිබිය හැකිය, නමුත් ස්නිපෙට් දිග තවමත් එයට ඉඩ නොදේ); මෙහි අපට “චරිතයක්” ඇත, එහි වටිනාකම ප්‍රතිදානය කර හැම්ලට් සතුව ඇති කවර අගයක් උපකල්පනය කරන්න. අවුල් සහගතද? මයහාප්.

දිග 43 ස්නිපටය

Am I as horrid as a half-witted flirt-gill?

ජුලියට් මෙය විමසීමෙන් අදහස් කරන්නේ ඇයට අඩු ගෞරවයක් ඇති බවයි (එය සැබෑ ජීවිතයේ වුවද); එය if23 සහ 37 වැනි කුඩා කොටස් වැනි තවත් එකකි. ඔහ්, මට බොහෝ දුරට අමතක වී ඇත: මෙය පරිවර්තනය කරයි if (Juliet == -2).

දිග 44 ස්නිපටය

You are as evil as the square root of Romeo!

ඔව්, වර්ග මූලයන් නපුරුයි, ඔබ දැන සිටියේ නැද්ද? කෙසේ වෙතත්, මෙම උපදෙස් එය කරන්නේ කුමක්ද යන්න තේරුම් ගැනීමට තරම් සරල ය: රෝමියෝ හි ගබඩා කර ඇති වටිනාකමේ වර්ග මූලයේ වටිනාකමට “චරිතය” කථා කිරීම ආරෝපණය කරයි.

දිග 45 ස්නිපටය

Hamlet:
 Art thou more cunning than the Ghost?

ස්නිපෙට් 37 නිසි ලෙස ලියා ඇත්තේ රේඛාව කතා කරන චරිතය සමඟ ය.

දිග 46 ස්නිපටය

the product of a rural town and my rich purse.

හරි ... කෙසේ වෙතත්, පසුම්බිවලින් නගර ගුණ කිරීමට ඔබට ඉඩ සලසන ලෝකයේ එකම භාෂාව SPL විය හැකිය. මෙයින් අදහස් කරන්නේ (2*1)*(2*1), මම එතරම් වරදවා වටහා නොගත්තොත්, එය සමාන වේ 4.

දිග 47 ස්නිපටය

Romeo:
 Speak your mind.

Juliet:
 Speak YOUR mind!

මම ඔබට එය දෙන්නම්: එය ඉතිහාසයේ වඩාත්ම විකාර දෙබස් වලින් එකක් විය හැකිය. නමුත් ඔබ ප්‍රදර්ශනය කිරීමට අමුතු භාෂාවක් තෝරා ගන්නා විට ඔබට ලැබෙන්නේ එයයි. රෝමියෝ සහ ජුලියට් එකිනෙකාට කෙටියෙන් කිවහොත් ඔවුන්ගේ සාරධර්ම ප්‍රතිදානය කරන්න.

දිග 48 ස්නිපටය

You lying fatherless useless half-witted coward!

එය කෙලින්ම පරිවර්තනය කිරීම , 2*2*2*2*(-1). -16, හරිද?

දිග 49 ස්නිපටය

Scene V: Closure.

Hamlet:
 Speak your mind!

[Exeunt]

එස්පීඑල් හි වැඩසටහනක් අවසන් කරන්නේ කෙසේද යන්න පිළිබඳ උදාහරණයක්. ඔබට ඒ සඳහා විශේෂයෙන් දර්ශනයක් ප්‍රකාශ කළ හැකිය (එය අවශ්‍ය නොවුවද), පසුව හැම්ලට් තවත් "චරිතයක්" ඉල්ලා සිටින්නේ ඒවායේ වටිනාකම ප්‍රතිදානය කරන ලෙසටය, එවිට ඔවුන් සියල්ලෝම වේදිකාවෙන් පිටව යති. ඔව්, ඔවුන් සියල්ලන්ටම වේදිකාවෙන් බැසීමට අවශ්‍ය වේ.

දිග 50 ස්නිපටය

Othello, a young squire.
Lady Macbeth, an old fart.

නිසි උපදෙස් වලට පෙර තවත් "චරිත" ඉදිරිපත් කිරීම. සෑම විටම, සම්පාදකවරයා වෙත කරුණු බව එකම දේ Othelloසහ Lady Macbeth, ඒ නිසා රේඛාව ඉතිරි පුරවමින් දක්වා ඇත ...

තවත් එක් දෙයක්: එස්පීඑල් වැඩසටහනක පෙනී සිටීම සඳහා "චරිත" එකිනෙකට සම්බන්ධ නොවිය යුතුය - එබැවින් ඔබට රෝමියෝ, ඔතෙලෝ සහ හැම්ලට් එකම නාට්‍යයක සිටිය හැකිය.

ෆැක්ටොයිඩ් (මේ දේවල් වලින් අඩ සියවසක්? පියු! මෙයින් පසු මම හිතන්නේ මම විලියම් ෂේක්ස්පියර්ට වෛර කරන්නම් ...)

මීට ටික කලකට පෙර සඳහන් කළ සහ එස්පීඑල් නිර්මාණකරුවන් විසින් වැඩි දියුණු කරන ලද එස්පීඑල් සිට සී පරිවර්තකය පදනම් වූයේ ෆ්ලෙක්ස් සහ බයිසන් මත ය .

දිග 51 ස්නිපටය

Othello:
 Recall your great dreams. Speak your mind!

(රෝමියෝ, ජුලියට් සහ හැම්ලට් අසනීපයි ... වෙනසක් සඳහා අපි ඔතෙලෝව ගෙන එන්නෙමු!)

Recall, ඔබට අනුමාන කළ හැකි පරිදි, මෙහි යතුර එයයි. ඔතෙලෝ ඇමතූ "චරිතය" ඔහුගේ / ඇයගේ තොගයෙන් වටිනාකමක් ලබා ගනී, එම අගය උපකල්පනය කර පසුව එය ප්‍රතිදානය කරයි.

දිග 52 ස්නිපටය

Thou art as pretty as the sum of thyself and my dog!

තවත් මුදලක්. යොවුන්. මෙය හැම්ලට් වෙත ආමන්ත්‍රණය කර ඇතැයි උපකල්පනය කිරීම, එයින් අදහස් වේ Hamlet = Hamlet + 1. නැත්නම් Hamlet += 1. නැත්නම් Hamlet++.

දිග 53 ස්නිපටය

Romeo:
 You are as vile as the sum of me and yourself!

අහ්, ඔව්, මට කලින් සඳහන් කිරීමට අමතක වූ දෙයක්: කථා කරන "චරිත" වලට ඔවුන්ගේම රේඛාවල සඳහන් කළ හැකිය.

දිග 54 ස්නිපටය

Juliet:
 Is the sum of Romeo and me as good as nothing?

කලින් ස්නිපටයේ තවත් උදාහරණයක්, කොන්දේසියකට ඇතුළත් කර ඇත. ඉතින් අපට මෙහි ඇත්තේ එයයි if (Romeo + Juliet == 0).

දිග 55 ස්නිපටය

Juliet:
 You are as lovely as the sweetest reddest rose.

ඉතින්, මෙන්න, ජුලියට් ඇය කතා කරන "චරිතයට" ප්‍රශංසා කරයි (එය රෝමියෝ යැයි සිතමු, ෂේක්ස්පියර් වෙනුවෙන්), ඔහු / ඇය 4 බව ප්‍රකාශ කරයි. ඔව්, සාරධර්මවල තවත් පැවරුමක්.

දිග 56 ස්නිපටය

Othello:
 You lying fatherless useless half-witted coward!

ස්නිපෙට් 48 නිසි පරිදි සිදු කර ඇති අතර එය "චරිතයක්" සහිතව සිදු කරයි. ඔබට අනුචලනය කිරීමට කම්මැලි නම් (මා මෙන්), මෙයින් අදහස් කරන්නේ අපහාසයට ලක්වූ තැනැත්තාට -16 අගය ලැබීමයි.

දිග 57 ස්නිපටය

Romeo:
 If not, let us return to Act I. Recall thy riches!

එස්පීඑල් හි කොන්දේසි සාමාන්‍ය පදනමින් ක්‍රියාත්මක වන ආකාරය මම දැනටමත් පැහැදිලි කර ඇත්තෙමි. කෙසේ වෙතත්, වඩාත් පේළිගත විශ්ලේෂණයක් අවශ්‍ය වේ. අපට elseමෙහි නොමැත: නිදසුනක් ලෙස, මෙම උදාහරණයේ දී, කොන්දේසිය අසමත් වුවහොත්, වැඩසටහන I වන පනත වෙත නැවත පැමිණේ; නමුත් එය සත්‍ය නම්, එය ඊළඟ උපදෙස් දක්වා ඉදිරියට යනු ඇත, එය Recall- තොගයේ සිට පොප් එකක්, එනම්.

දිග 58 ස්නිපටය

Romeo:
 You are as disgusting as the square root of Juliet!

ස්නිපටය 44 අල්ලාගෙන උපදෙස් ඉදිරිපත් කළ යුතු ආකාරය ඉදිරිපත් කිරීම. මෙය රෝමියෝ සහ ඔතෙලෝ අතර සංවාදයක් නම්, අපට මෙය ජාවා ලෙස පරිවර්තනය කළ හැකිය Othello = Math.sqrt(Juliet).

දිග 59 ස්නිපටය

Othello:
 You are as vile as the sum of yourself and a toad!

හරි, ඔතෙලෝ රෝමියෝ සමඟ කතා කරන්නේ නම්, මෙය සමාන වනු ඇත Romeo+(-1); Romeo--, කෙටියෙන්. හරිම මූලිකයි නේද? එය ඔබට SPL ය.

දිග 60 ස්නිපටය

Is the quotient between the Ghost and me as good as nothing?

කෙටියෙන් කිවහොත්, if (The Ghost/Hamlet == 0)"මම" හැම්ලට්ට අයත් යැයි උපකල්පනය කිරීම.

දිග 61 ස්නිපටය

Thou art as handsome as the sum of yourself and my chihuahua!

වචන හා අපහාසවල ස්ථර හා ස්ථර ඉවත් කළ පසු, සිසිල් කාර්යයන් සහ දේවල් නොමැතිව එස්පීඑල් මූලික දෙයක් බව ඔබට පෙනේ. එබැවින් වැඩසටහනේ ශරීරය මත ගණිතමය කාර්යයන් රාශියක් සහ බරක් අප සතුව ඇත. ඉතින්, මෙය ජුලියට්ට ආමන්ත්‍රණය කළහොත් එය සමාන වේ Juliet++.

දිග 62 ස්නිපටය

twice the difference between a mistletoe and a oozing blister!

ඔව්, ඔව්, තවත් ගණිතමය මෙහෙයුම්. දළ වශයෙන්, එස්පීඑල් හි මෙම බයිට් 62 ට පරිවර්තනය කළ හැකිය 2*(1-2*(-1)). මෙය ලස්සන ගොල්ෆ් ක්‍රීඩාවක් වනු ඇත, නේද? හරි.

දිග 63 ස්නිපටය

You lying stupid fatherless rotten stinking half-witted coward!

ස්නිපෙට් 48 ප්‍රතිදානය -16, මෙය -64 ට සමාන වේ : 2*2*2*2*2*2*(-1).

දිග 64 ස්නිපටය

your coward sorry little stuffed misused dusty oozing rotten sky

එස්පීඑල් ගැන මා තේරුම් ගත් දෙයින් මෙය සම්පූර්ණයෙන්ම නීත්‍යානුකූලයි. “ධනාත්මක” නාම පදයක් ඉදිරියට ගෙන යන අපහාසාත්මක නාමයන් ඔබට තිබේ. නාමවිශේෂණ negative ණාත්මකද නැද්ද යන්න විශේෂ වෙනසක් නැති හෙයින් (ඒවායේ එකම අගය ඔවුන්ගේ දකුණු පස ඇති සංඛ්‍යාව දෙකින් ගුණ කිරීම), අපට මේ හා සමාන මෝඩ වාක්‍ය තිබිය හැකිය. එය 256 ට සමාන වේ 2*2*2*2*2*2*2*2*1=256.

දිග 65 ස්නිපටය

You are nothing! You are as vile as the sum of thyself and a pig.

හ්ම්, මෙතරම් වෛරයක් නේද? ඉතින්, අපට මෙහි ඇති දේ y=0; y=y+(-1);බොහෝ විට "ගොල්ෆ්" කිරීමට සමාන විය හැකි You are a pig!නමුත් හෙහ්.

දිග 66 ස්නිපටය

You are as beautiful as the difference between Juliet and thyself.

ඉතින්, ජුලියට් ඔබෙන් අඩු කරන්න, හෙහ්? මෙය විකේතනය කිරීම ඉතා සරල ය: Romeo=Juliet-Romeo;රෝමියෝ යැයි කියනු ලැබේ.

දිග 67 ස්නිපටය

Juliet:
 Am I better than you?

Romeo:
 If so, let us proceed to Act V.

එස්පීඑල් හි බොහෝ කොන්දේසි ක්‍රියාත්මක වන ආකාරය. ඔබ ප්‍රකාශනය පරීක්ෂා කරන අතර, එය සත්‍ය නම් (නැතහොත්: ස්නිපෙට් 33 බලන්න), ඔබ වැඩසටහනේ වෙනත් කොටසකට පනින්න; එසේ නොමැතිනම්, ඔබ ඊළඟ වාක්‍යය ඉදිරියට ගෙන යනු ඇත.

දිග 68 ස්නිපටය

The Ghost:
 You are as small as the sum of yourself and a stone wall!

ඔව්, ඔව්, මම ටිකක් ඒකාකාරී වෙනවා. නමුත් එස්පීඑල් එවැනි ය. මා මීට පෙර සඳහන් කළ පරිදි, එහි ප්‍රකාශන ගණිතමය ක්‍රියාකාරිත්වයේ මිශ්‍රණයකි. මේ අනුව, මෙය තවත් වර්ධකයකි - stone wallඋදාසීන "නාම පදයක්" බැවින්.

දිග 69 ස්නිපටය

Thou art as disgusting as the difference between Othello and thyself!

එකතුවක් වෙනුවට, ඔතෙලෝ සහ කතා කරන ඕනෑම අයෙකු අතර අඩු කිරීමක් අපට ඇත.

දිග 70 ස්නිපටය

You are as handsome as the sum of Romeo and his black lazy squirrel!

අපි නැවත එකතු කිරීම් වෙත යමු, ඔව් - මට සූත්‍රගත ලෙස අමතන්න, හෙහ්. අපි මෙය පරිවර්තනය කරමු Romeo + 2*2*1.

දිග 71 ස්නිපටය

Scene I: Dialogues.

[Enter Juliet]

Othello:
 Speak your mind!

[Exit Juliet]

දර්ශනයක් මේ තරම් කුඩා විය හැකිය. Julietවේදිකාවට ඇතුළු වන විට ඔතෙලෝ ඇයට ගබඩා කළ අගය ප්‍රතිදානය කරන ලෙස පවසන අතර පසුව ඇය නැවත වේදිකාවෙන් බැස යයි.

දිග 72 ස්නිපටය

twice the difference between a mistletoe and an oozing infected blister!

තවත් එක් ගණිතමය මෙහෙයුමක් - එස්පීඑල් ඔවුන් සමඟ ගැටෙන බැවිනි. අපට මෙය පරිවර්තනය කළ හැකිය 2*(1-2*2*(-1)).

දිග 73 ස්නිපටය

You are nothing! Remember me. Recall your unhappy story! Speak your mind!

පේළි හතරක් උපදෙස්?! මම මා ගැන ආඩම්බර වෙමි. කෙසේ වෙතත්, මෙය රෝමියෝ සහ ජුලියට් අතර සංවාදයක් යැයි උපකල්පනය කරමු (ඔහු කතා කරන්නේ): මෙයින් අදහස් කරන්නේ ජුලියට්ගේ අගය 0 සිට ආරම්භ වන බවයි; එවිට ජුලියට් රෝමියෝගේ වටිනාකම ඇගේ මතක ගබඩාවට තල්ලු කර එය පොප් කර එහි ඇතුළත් කළ ස්වරූපයෙන් ප්‍රතිදානය කරයි. සරලයි නේද?

දිග 74 ස්නිපටය

You are as sweet as the sum of the sum of Romeo and his horse and his cat!

ඔව්, ඔව්, කම්මැලි උදාහරණය, ​​මම දන්නවා. නමුත් මෙයයි X = (Romeo + 1) + 1.

දිග 75 ස්නිපටය

Is the remainder of the quotient between Othello and me as good as nothing?

හොඳයි, මෙය ඉතා සරල ය. ඔබේ විකේතනය කිරීමේ කුසලතා අක්‍රීය නම්, එය පරිවර්තනය කරයි if (Othello % X == 0).

දිග 76 ස්නිපටය

Thou art as rich as the sum of thyself and my dog! Let us return to scene I.

ස්නිපෙට් 26 සිට පැනීම ඊට පෙර ප්‍රකාශනයක් සමඟ. ඒ gotoශිෂ්ය නියමු බලපත්රය මත සෑම විටම කොන්දේසියක් අසල නැත, එය මේ වගේ විය හැකිය - හා, ඇත්ත වශයෙන්, මේ වර්ගයේ gotoසෑම විටම පනතක් හෝ දර්ශන අවසානයේ, එය සම්පාදනය නොවන්නේ ය / ඉටු පසු උපදෙස් සිට සොයා ගත වනු ඇත. පළමු උපදෙස් ඉතා සරල ය : x=x+1.

දිග 77 ස්නිපටය

[Exit Hamlet]

[Enter Romeo]

Juliet:
 Open your heart.

[Exit Juliet]

[Enter Hamlet]

ඉතින්, අපට වේදිකාවේ ජුලියට් සහ හැම්ලට් සිටී; නමුත් අපට රෝමියෝ වෙතින් වටිනාකමක් අවශ්‍යයි. මේ අනුව, සම්පාදකයා ඉතා දරුණු හිසරදයකින් බේරීම සඳහා, පළමුව අපි හැම්ලට්ව වේදිකාවෙන් ඉවත් කරමු (එය යන්න ජුලියට් විය හැකි වුවත්), අපි රෝමියෝට වේදිකාවට නැගීමට කියමු, ජුලියට් ඔහුට ප්‍රතිදානය කිරීමට උපදෙස් දෙයි අංකය (ස්නිපෙට් 21 හි පැහැදිලි කිරීම බලන්න), පසුව රෝමියෝ වේදිකාවෙන් බැස හැම්ලට් නැවත පැමිණේ. ඉතා සරල හා සරල ය.

දිග 78 ස්නිපටය

The Ghost:
 Speak thy mind.

Lady Macbeth:
 Listen to thy heart! Remember thyself.

ඉතින්, අවතාරය (හැම්ලට්ගේ මියගිය පියා) මැක්බත් ආර්යාවට ඇගේ වටිනාකම ප්‍රතිදානය කරන ලෙස පවසන අතර, ඇය අවතාරයට අංකයක් කියවා එය ඔහුගේ තොගයට තල්ලු කරන ලෙස අණ කරයි.


32
මෙය ඇදහිය නොහැකි තරම් සිත්ගන්නාසුළු වන අතර ඔබේ පැතිකඩ පින්තූරය පරිපූර්ණ සුදුසුකමක් වන අතර, ඔහු හරියටම එස්පීඑල් ක්‍රමලේඛකයෙකුගේ පෙනුම මෙන් පෙනේ.
අධි ක්‍රියාකරු

3
@overactor අපහාස කළ යුතුද, ආඩම්බර විය යුතුද යන්න මම නොදනිමි. ^ _ ^
රොඩොල්ෆෝ ඩයස්

9
විකාර සහගත ලෙස මෙය මෙහි උදාහරණය කියවීමට වඩාත්ම අපැහැදිලි නොවේ ... එය "අවම ප්‍රායෝගික" සඳහා බැඳී ඇති බව පෙනේ.
එච්ආර් රැම්බ්ලර්

6
ROFL මෙන්න +1 ඔබට උදව් කිරීමට - රොඩොල්ෆෝ උල්ලං to නය කිරීමට නැවත වරක්!
එච්ආර් රැම්බ්ලර්

3
Od රොඩොල්ෆෝ ඩයස් ඔබට ආරම්භ කළ හැකිය. මම ඔවුන් බැලීමට බලා සිටිමි. ඔබට ඉහළ ඡන්ද 120 ක් ඇත.
ghosts_in_the_code

175

පීට්

ෆැක්ටොයිඩ්

පීට් යනු ක්‍රමලේඛන භාෂාවකි, එහිදී ප්‍රභව කේතය රූප වලින් සමන්විත වේ. වැඩසටහන් ප්‍රවාහය ඉහළ වම්පස පික්සෙල් වලින් ආරම්භ වන අතර එය අවසන් වන තුරු පික්සෙල් සහ පික්සල් කණ්ඩායම් අතර රූපය වටා ගමන් කරයි.

පැහැදිලි බව සඳහා, පීට් වැඩසටහන් විශාල කරන ලද අනුවාදයක බහුලව පෙන්වනු ලැබේ. එවැනි අවස්ථාවකදී මෙම පදය codelප්‍රභව රූපයේ තනි පික්සෙල් වලට අනුරූප වන එකම වර්ණ පික්සෙල් සමූහයක් විස්තර කිරීමට භාවිතා කරයි.

මෙම අභියෝගය සඳහා, පීට් අක්ෂර භාවිතා නොකරන බැවින්, නියැදි වැඩසටහන් සඳහා එක් ඡන්දයකට එක් කේතයක් භාවිතා කෙරේ.

1 කෝඩලය

1 කෝඩලය

මෙය වලංගු වැඩසටහනකි, එය කිසිවක් නොකරන අතර අවසන් වේ. පාලක ප්‍රවාහය ඉහළ වම්පස (පමණක්) පික්සෙල් වලින් ආරම්භ වන අතර එයින් පිටවීමට මගක් නොමැත, එය වැඩසටහන අවසන් කරයි.

පික්සෙල් මෙම අවස්ථාවේ දී එකම බලපෑම සඳහා ඕනෑම වර්ණයක් විය හැකිය.

2 කේත

2 කේත

මෙය අඛණ්ඩව stdin හි අක්ෂර කියවන අතර ඒවායේ යුනිකෝඩ් අගයන් සියල්ලම පවත්වා ගෙන යනු ඇත (මෙම එකතුව සමඟ කිසිවක් සිදු නොවූවත් එය දර්ශනය නොවේ).

ප්‍රෝගම් ප්‍රවාහය කෝඩල් දෙක අතර ඉදිරියට හා පසුපසට ගමන් කරයි. කලාප 2 හි වර්ණ හා සැහැල්ලුබවෙහි වෙනස මත පදනම්ව, එක් කේතයක හෝ කලාපයක සිට තවත් කේතයකට චලනය කිරීමෙන් පයිට් හි විධානයන් ක්‍රියාත්මක වේ. මෙම inputවමෙන් දකුණට ඉනිම්වලදී පසුව ආඥාවයි addදකුණේ සිට වමට ය. පළමු addවිධානය මත, තොගයේ එක් අගයක් පමණක් ඇති බැවින් කිසිවක් සිදු නොවන අතර පිරිවිතරයන් පවසන්නේ ප්‍රමාණවත් අගයන් නොමැති විධානයන් නොසලකා හරින බවයි.

මෙම වැඩසටහන කිසි විටෙකත් අවසන් නොවන ලූපයක් වන අතර, බොහෝ පීට් වැඩසටහන් අතිශයින් කුඩා ප්‍රමාණයන්ගෙන් යුක්ත වනු ඇත, මන්දයත් ක්‍රමලේඛ ප්‍රවාහය නිසි ලෙස "උගුලට හසු කර" අවසන් කිරීමට අවම වශයෙන් කෝඩල් කිහිපයක්වත් ගත වන බැවිනි.

3 කේත

3 කේත

මෙය මූලික echo-type වැඩසටහනක් වන අතර, එය වරකට අක්ෂරයක් stdin සිට කියවා එය stdout වෙත මුද්‍රණය කරනු ඇත.

නැවතත් මෙය අනන්ත පුඩුවක්. මෙම වැඩසටහන වාම-කිරීමට උරුම වන්නේ හරි, ඒ රැකියාව විසින් ආරම්භ inputපසුව output. වැඩසටහන හැකි සෑම විටම එකම දිශාවකට ගලා යයි. ලා කොළ පැහැති කෝඩලයේ ඇති එකම පිටවීම වන්නේ අනෙක් පැත්තට ආපසු ගමන් කිරීමයි. දකුණේ සිට වමට ආපසු ගමන් කරන විට එය ක්‍රියාත්මක කිරීමට subtractහා addවිධාන කිරීමට උත්සාහ කරයි , නමුත් තොගය හිස් බැවින් ඒවා නොපවතිනු ඇත.

4 කේත

4 කේත

දින නියමයක් නොමැතිව 2 දක්වා මුද්‍රණය කරයි.

ක්‍රියාකාරීව විශේෂයෙන් සිත්ගන්නාසුලු වැඩසටහනක් නොවේ, නමුත් දැන් අපට අවසානයේ සංයුක්ත කේත සංඛ්‍යාවක් ඇති බැවින් අපට වමේ සිට දකුණට වඩා තරමක් දියුණු ප්‍රවාහයක් පෙන්විය හැකිය. ක්‍රමලේඛ ප්‍රවාහය කේතයකින් පිටවීමට උත්සාහ කරන විට එය පළමුව වත්මන් දිශාවට උත්සාහ කරයි. එය කළ නොහැකි නම් (මේ අවස්ථාවේ දී රූපයේ දාරය නිසා) එය අංශක 90 ක් දක්ෂිණාවර්තව භ්‍රමණය වන අතර නැවත පිටවීමට උත්සාහ කරයි. මෙම අවස්ථාවෙහිදී, වැඩසටහන වරකට ඔරලෝසුව 1 කෝඩලය වටා ගමන් කරයි, 1 දෙවරක් තොගයට ඇතුල් කරන්න push, addඒවා එකට ඇතුල් කර ප්‍රති result ලය ලබා ගන්න output.

5 කේත

5 කේත

වරකට වර්‍ගයක් stdin සිට නැවත නැවත කියවන අතර ඒවායේ යුනිකෝඩ් අගයන්හි එකතුව නිරීක්ෂණය කරයි.

මෙය අත්‍යවශ්‍යයෙන්ම 2-කෝඩල් අනුවාදයේ ක්‍රියාකාරීත්වයම වේ, නමුත් මෙම අභියෝගය වන්නේ භාෂාව ප්‍රදර්ශනය කිරීම වන අතර, පීට් පිළිබඳ එක් සිසිල් දෙයක් නම්, එකම දේ කරන විවිධ පෙනුමක් ඇති පින්තූර ඔබට ලබා ගත හැකි ආකාරයයි.

මෙන්න අපි පළමු වරට සුදු කෝඩලය දකිමු, එමඟින් උපදෙස් ක්‍රියාත්මක නොකර වැඩසටහන් ප්‍රවාහය එය හරහා ලිස්සා යාමට ඉඩ සලසයි. මැජෙන්ටා සහ නිල් කෝඩල් මෙහි සියලු වැඩ කටයුතු කරයි. නිල් සිට රතු දක්වා ගමන් කිරීම කිසිවක් නොකරන්නේ එය මැද සුදු කෝඩලය තරණය කරන බැවිනි. රතු පාට ඒවා pushඅංක 1 යන්තම් තොගයට ඇතුළු වන අතර popඑය වමේ සිට දකුණට ගමන් කරන විට දකුණෙන් වමට ඒවා හරහා ගමන් කරයි, පසුව සුදු කෝඩලය හරහා ගමන් කරන බැවින් කිසිදු උපදෙස් ක්‍රියාත්මක නොවේ.

6 කේත

6 කේත

නැවතත්, පෙර ක්‍රියාකාරිත්වය වෙනස් පෙනුමකින් පුනරාවර්තනය කිරීම. මෙය stdin සිට stdout දක්වා වරකට චරිතයක් කියවන තවත් ප්‍රතිරාවය වැඩසටහනකි.

මෙන්න අපි අපේ පළමු කළු කෝඩලය දකිනවා. වැඩසටහන් ප්‍රවාහයට කළු කෝඩලයක් ඇතුළු කළ නොහැක, එබැවින් ඉහළ දකුණේ ඇති සැහැල්ලු මැජෙන්ටා කෝඩලයේ සිට රූපයේ දාරය හේතුවෙන් වැඩසටහන දකුණෙන් පිටවීමට අසමත් වනු ඇත, කළු කෝඩලය හේතුවෙන් පිටවීමට අසමත් වනු ඇත, සහ රතු කෝඩලය තුළට වමට ආපසු යන්න. . නිල් සහ කොළ කෝඩල් තනිකරම අලංකාරයි, වැඩසටහන කිසි විටෙකත් ඒවාට ඇතුළු නොවනු ඇත.

7 කේත

7 කේත

වෙනස් පෙනුමක් ඇති තවත් ප්‍රතිරාවය වැඩසටහනකි.

මෙහිදී අපට පෙනෙන්නේ අපගේ පළමු කෝඩෙල් කුට්ටි ප්‍රමාණය 1 ට වඩා විශාල වන බවයි. pushඋපදෙස් ක්‍රියාත්මක කිරීමේදී හැර බ්ලොක් එකේ විශාලත්වය වැදගත් නොවේ , එබැවින් මෙම වැඩසටහන විවිධ වර්ණවලින් හැර 3-කෝඩල් අනුවාදයට සමාන ලෙස සලකනු ලැබේ.

කෝඩල් 8 ක්

කෝඩල් 8 ක්

Stdin සිට අංකයක් කියවන අතර නැවත නැවත චතුරස්රය stdout වෙත ප්‍රතිදානය කරයි.

පාලක ප්‍රවාහය 4-කෝඩල් වැඩසටහනේ මෙන් මූලික ඔරලෝසු රටාවකි. ඉහළ වමේ සිට ඇරඹෙන අනුපිළිවෙල input, duplicate(තොගයේ ඉහළ අගයේ අමතර පිටපතක් තොගයට තල්ලු කරයි) multiply,, output. ඉන්පසු එය pushඅගය 1 අගය තොගයට, සුදු පැහැය හරහා popවිනිවිද යන බැවින් කිසිදු විධානයක් ක්‍රියාත්මක නොවන අතර පහළ වමේ සිට ඉහළ වම් කෝඩලය දක්වා ගමන් කරන විට එය තොගයෙන් 1 ක් වේ. මෙය වැඩසටහනේ ආරම්භයට හිස් තොගයක් සමඟ නැවත ලබා දෙන අතර එය නැවත නැවත සිදු වේ.

9 කේත

9 කේත

1 + 2 = 3 එකතු කරයි, පසුව අවසන් වේ.

දැන් අපට කෝඩල් 2 ට වඩා වැඩි මානයන් දෙකකින් යුත් වැඩසටහනක් ඇති බැවින්, අපට අවසානයේදී කලාපයක් සැකසිය හැකි අතර එමඟින් වැඩසටහන උගුලට හසු වී එය සදහටම ලූප් කරනවා වෙනුවට අවසන් වේ. රතු කෝඩලයේ සිට තද රතු කලාපයට ගමන් කරන පළමු මෙහෙයුම push1 න් එකක් වන අතර, පසුව වැඩසටහන භ්‍රමණය වී මැදින් සැහැල්ලු රතු කෝඩලය තුළට ගලා යන අතර pushඑහි අගය 2 ක් වේ. ලා රතු සිට ලා කහ පැහැයට ගලා යයි ක addමෙහෙයුම. පහල ලා කහ තීරුව මඟින් සියලුම කොන් අවහිර වී ඇති බැවින් එය පිටතට ගලායාමට ක්‍රමයක් නොමැති බැවින් වැඩසටහන අවසන් වීමට හේතු වේ.


1- සහ 2-ඉහළ වැඩසටහන් ඉක්මනින් අවලස්සන සහ උනන්දුවක් නොදක්වන බැවින් මේ මොහොතේ සිට මම අවධානය යොමු කරන්නේ එක් එක් දිශාවට අවම වශයෙන් කේත කිහිපයක් වත් ඉඩ දෙන සංඛ්‍යා කෙරෙහි ය.

කෝඩල් 12 ක්

කෝඩල් 12 ක්

අවසාන වශයෙන් ප්‍රයෝජනවත් යැයි තර්ක කළ හැකි යමක් කරන වැඩසටහනක් (එය තවමත් ටිකක් දිගු වුවද). Stdin වෙතින් අනුක්‍රමිකව අංක 2 ක් කියවා ඒවායේ එකතුව ප්‍රතිදානය කරයි, මෙය නැවත නැවතත් කරයි.

වැඩසටහන වමෙන් දකුණට ඇමතීම ඇමතුම් 2 4 වර්ණ බාර් හරහා ගලා inputsයනු විසින් අනුගමනය addවිධාන. ඉන්පසු එය පහළ දකුණේ කේතයට ගමන් කර a සිදු කරයි output, ඉන්පසු සුදු කලාපය හරහා වමට හැරී ආරම්භය දක්වා ගමන් කරයි.

මෙය කෝඩල් 8 කින් කළ හැකිව තිබුනි, නමුත් අපට අමතර ඉඩක් ඇති බැවින් පැරණි සං signal ා රහිත රූපවාහිනී සංදර්ශනයකින් මඳක් ආනුභාව ලත් දෙයක් අපට කළ හැකිය.

කෝඩල් 15 ක්

කෝඩල් 15 ක්

Stdin වෙතින් අංකයක් කියවා එහි 'වර්ග' ප්‍රතිදානය කරයි.

ඇත්ත වශයෙන්ම යමක් කරන වැඩසටහනකට සමමිතික පෙනුමක් ලබා ගැනීමට මෙය උපක්‍රම කිහිපයක් භාවිතා කරයි. වම් කෙළවරේ රතු තීරුව අනෙක් කෝඩලයේ පහළ කෝඩලයේ වෙනස් වර්ණයක් වන අතර (අවම වශයෙන් මට නම්) මෙම රතු පැහැති සෙවණැලි 2 ඉතා සමාන බව පෙනේ. වැඩසටහන සැහැල්ලු රතු කලාපයේ සිට ලා නිල් පැහැති කෝඩලය වෙතට ගමන් කරනු ඇත, පසුව වැඩසටහනේ මැදින් කෙළින්ම එය කොටු වී ඇති දකුණු පැත්තේ ලා කොළ පැහැයට හැරේ. එය සිදු input, duplicate, multiply, හා outputමෙහෙයුම්.

තද රතු කෝඩලය, මැද තීරුවේ ඉහළ සහ පහළ මධ්‍යම හරිත කෝඩල් සමඟ අලංකාර වන අතර වැඩසටහන කිසි විටෙකත් ඒවාට ළඟා නොවනු ඇත.

කෝඩල් 20 ක්

කෝඩල් 20 ක්

0 කියවන තෙක් stdin සිට අංක කියවන අතර, එම අවස්ථාවේදී එය ඇතුලත් කළ සියලුම සංඛ්‍යා හා පිටවීම්වල එකතුව ප්‍රතිදානය කරයි.

pointerමෙහෙයුමේ ස්වරූපයෙන් පාලන ප්‍රවාහයක් කිරීමට අපට අවසානයේ ප්‍රමාණවත් ඉඩක් ඇත . ඉහළින් ඇති කෝඩල් 4 ක්‍රියාත්මක කරයි input, duplicateසහ notක්‍රියා කරයි, ඉන්පසු notඉහළ දකුණේ ඇති මැජෙන්ටා සිට ඊට පහළින් 2-කෝඩල් කහ දක්වා ගමන් කරයි. මෙම notමෙහෙයුම සිරස් එකතුවේ ලකුණු ඉහළ අගය මඟින් හා ඉහළ වටිනාකම 0 විය, සහ 1 නම්, වෙනත් ආකාරයකින් 1 අමතක විය හැකියි. එම නිසා notඕනෑම අස්ථිර අගයක් දෙවරක් ප්‍රතිස්ථාපනය කරයි 1. කහ තීරුවේ සිට තද නිල් පැහැයට මාරුවීම pointerමෙහෙයුමක් සිදු කරයි , එමඟින් තොගයේ ඉහළ අගය ඉවතට ගෙන දිශා දර්ශකය ඔරලෝසුවකට බොහෝ වාරයක් ගෙන යයි.

ඉහළ අගය 1 නම් (එනම් අපි බිංදුවකට ඇතුළු නොවූයේ) දිශාව දර්ශකය වමට යොමු වන අතර, addමෙහෙයුමක් සඳහා මැජෙන්ටා කෝඩල් වෙත ගමන් කරයි (තොගයේ එක් අගයක් පමණක් නිසා එය පළමු වරට නොසලකා හරිනු ඇත) සහ ඉන්පසු සුදු පිටුපසින් වැඩසටහනේ ආරම්භය දක්වා.

දර්ශකයේ ඉහළ අගයේ අගය ශුන්‍ය නම්, දිශා දර්ශකය වෙනස් නොවන අතර වැඩසටහන පහළට ඉදිරියට යනු ඇත. සැහැල්ලු නිල් පටිය වෙතට ගමන් කිරීම මඟින් තොගයෙන් ඇතුල් වූ pop0, සමුච්චිත සංඛ්‍යා වල එකතුව පමණක් ඉතිරි වේ. පතුලේ ඇති සයන් තීරුව වෙත ගමන් කිරීමෙන් outputඑම මුදල ලැබෙනු ඇති අතර පසුව වැඩසටහන් ප්‍රවාහය සිරවී ඇති බැවින් අවසන් වේ.

කෝඩල් 25 යි

කෝඩල් 25 යි

ගණන් කිරීම! Stdin වෙතින් අංකයක් කියවන අතර, වරකට එක් අංකයක් stdout කිරීම සඳහා ගණන් කිරීම 1 ට මුද්‍රණය කරයි. උදාහරණයක් ලෙස, 5 කියවා ඇත්නම්, 54321 මුද්‍රණය කෙරේ.

සයන් සිට කහ දක්වා පළමු මෙහෙයුම වන්නේ input. එවිට කහ යනු වැඩසටහන "ලූප්" ආරම්භ වන ස්ථානයයි. කහ> මැජෙන්ටා> නිල් යනු duplicateඑකල ය output, එබැවින් එය තොගයේ ඉහළ අගය මුද්‍රණය කරන නමුත් පිටපතක් තබා ගනී. දකුණු පැත්තේ පහළ ගමන්, අපි pushඅගය 1 අඩුක්කුව මතට පසුව ඉටු subtraction, 1. අපේ ඇතුළු අගය අඩු ඊළඟ වේ duplicate, notසහ තවත් notපහළ-දකුණු ආලෝකය තද දම් පාටින් සිට ඒ අසල කහ අඳුරු දෙසට ගමන් කරනවා. මෙය පෙර වැඩසටහනට සමාන ශුන්‍ය / nonzero චෙක්පතකි. ලා නිල් පැහැති කෝඩලය වෙත වමට ගමන් කිරීම pointerමෙහෙයුමක් සිදු කරයි, එය අප විසින් සිදු කළ හොත් වැඩසටහන අවසන් කිරීම සඳහා වම් පැත්තෙන් අඳුරු සයන් වෙතට ගමන් කරනු ඇත, නැතහොත් ආරම්භක ආදානයකින් තොරව අපගේ ලූපය නැවත ආරම්භ කිරීම සඳහා කහ දක්වා ඉහළ යනු ඇත, නමුත් මුල් අගය අඩු විය 1 කින්.

රතු කෝඩල් 3 ම අලංකාර වන අතර ඕනෑම වර්ණයක් විය හැකිය.

කෝඩල් 30 ක්

කෝඩල් 30 ක්

ෆිබොනාච්චි උත්පාදක යන්ත්රය. ෆිබොනාච්චි අනුක්‍රමයේ නියමයන් stdout වෙත මුද්‍රණය කරන අතර එය නතර නොවේ.

මෙය rollක්‍රියාකරුගේ පළමු හැඳින්වීම මෙන්ම, 1 ට වඩා විශාල කලාපීය ප්‍රමාණයක් pushක්‍රියාකරු සමඟ නිශ්චිත අගයක් තොගයට ලබා ගැනීම සඳහා භාවිතා කරන පළමු අවස්ථාව වේ.

සෑම විටම ඉහළ වමේ සිට දකුණට ගමන් කිරීම ආරම්භ වේ. පළමු 2 pushමඟින් 1 ක් තොගයට ක්‍රියාත්මක වන අතර පසුව outputඑය ෆිබොනාච්චි අනුක්‍රමය 1s දෙකකින් ආරම්භ වන නමුත් ප්‍රධාන වැඩසටහන් ලූපය මුද්‍රණය කරන්නේ එක් වරක් පමණි. pushප්‍රධාන වැඩසටහන් ලූපය ආරම්භ කිරීම සඳහා ඉහළ දකුණේ අඳුරු මැජෙන්ටා හි අවසන් වීමට එය තවත් 2s 1 ක් තොගයට එයි.

දකුණු පැත්තේ පහළ ගමන් අපි duplicateහා outputපසුව, අනු කිරීම සඳහා ලබන වාරයේදී මුද්රණය කිරීමට duplicateවත්මන් අනුක්රමය අගය පිටපතක් ලබා ගැනීමට නැවත. පහළට වමට ගමන් කිරීම pushමෙහෙයුම් 2 ක් ක්‍රියාත්මක කරයි. පහළ දකුණේ ලා රතු කලාපය ප්‍රමාණයෙන් කෝඩල් 3 ක් වන හෙයින්, පළමුවැන්න push1 වෙනුවට 3 ක් තොගයට තල්ලු කරයි.

ලා නිල් පාටට ගමන් කිරීම rollමෙහෙයුමකි. මෙය තොගයේ ඉහළම අගයන් 2 ඉවත් කර පළමු අගයට සමාන රෝල් ගණනාවක් සිදු කරයි, දෙවන අගයට සමාන ගැඹුරකට. මෙම අවස්ථාවේ දී, එය 1 රෝල් 3 ක් ගැඹුරට nසිදු කරයි. ගැඹුරට රෝල් කිරීම තොගයේ ඉහළ අගය (අපගේ අනුපිටපත් වත්මන් අගය) ගෙන එය nගැඹුරට තැන්පත් කරයි. අපගේ තොගය මේ වන විට ගැඹුරු 3 ක් පමණක් වන බැවින් ඉහළ අගය පතුලේ වළලනු ඇත.

නැවත වරක් ඉදිරියට යාම addමඟින් වර්තමාන අනුක්‍රමික අගය පෙර අනුක්‍රමික අගය සමඟ එකතු කරමින් මෙහෙයුමක් සිදු කරයි . අපගේ තොගයේ දැන් ඊළඟ (නව ධාරා) අනුක්‍රමික අගය සහ ඊට පහළින් ඇති අවසාන අගය ඇත. වැඩසටහන දැන් සුදු පැහැය හරහා අඳුරු මැජෙන්ටා වෙත ගමන් කර නැවත ලූපය ආරම්භ කරයි.

මැද කහ රටාව කිසි විටෙක භාවිතා නොවේ.

කෝඩල් 54 යි

කෝඩල් 54 යි

"හායි!" stdout කිරීමට

විශේෂයෙන් දිගු පණිවිඩයක් නොවේ, නමුත් පියට් මුද්‍රණය කිරීම පුදුම සහගත ඉඩක් ගනී. මුද්‍රණය සිදු කරනු ලබන්නේ යුනිකෝඩ් අගයන් භාවිතා කර වන අතර, පිටවන කලාපයේ ප්‍රමාණය භාවිතා කරමින් පූර්ණ සංඛ්‍යා තොගයට තල්ලු කරනු ලැබේ. මෙම අභියෝගය සඳහා අපට ඇත්තේ ඉතා සීමිත කේත සංඛ්‍යාවක් බැවින්, අපට අවශ්‍ය මුද්‍රිත පරාසය දක්වා ළඟා වීමට අපි යම් ගණිතයක් භාවිතා කරමු.

වැඩසටහන ආරම්භ වන්නේ pushවම් පසින් සයන් කලාපයේ 5 කින් ය. මෙතැන් සිට, එය duplicate5s පොකුරක් සමඟ තොගය ප්‍රමුඛ කර ගැනීම සඳහා මෙහෙයුම් 6 ක් සමඟ ඉහළට ඉහළින් ගලා යයි . ඊළඟට push1, subtractතොගයේ මුදුනේ 4 ක් තැබීමට, පසුව multiplyමෙහෙයුම් 2 ක් 4 * 5 * 5 = 100 තොගයට ඉහළින් තැබීමට. එවිට duplicate2 100 සඳහා a .

දැන් වැඩසටහන කළු පැහැයෙන් ඉවතට පැන පතුලේ වමට වැඩ කිරීමට පටන් ගනී. Push3 සහ 2 හි මෙහෙයුම් සහ පසුව roll5 100 යටතේ 2 100 භූමදාන කිරීම. ඊළඟට push1, අඩු කර එකතු කර 100 + 5-1 = 104 තොගයට ඉහළින් එකතු කරන්න, එය යුනිකෝඩ් "h" වේ. ඊළඟ මෙහෙයුම් 2 යනු push1 වන pointerඅතර කෙළවරට ගොස් මැදට දකුණට ගමන් කිරීම ආරම්භ outputකර "h" මුද්‍රණය කිරීම.

ඊළඟට addතොගයේ මුදුනේ 100 + 5 = 105 වන අතර output"i" මුද්‍රණය කිරීම. තොගයේ දැන් 5s දෙකක් අඩංගු වේ. Push1, add, multiplyලබා දෙන (1 + 5) * 5 = 30. අවසාන වශයෙන් push3 සහ add33 සඳහා, සහ outputපසුපස "!" සඳහා. වැඩසටහන පසුව ඉතිරි සුදු අවකාශය හරහා දකුණට හරිත පැහැයෙන් අවසන් වේ.


5
ඔව්, මේ සඳහා බලා සිටියේය :)
Sp3000

එය 2D අක්ෂර භාෂාවට වඩා වෙනස් වන්නේ කෙසේද? එය ඔබ සෛල අගයන් ගෙන එන ආකාරයයි.
JDługosz

26
djdlugosz බොහෝ එසෝටරික් ක්‍රමලේඛන භාෂා, ඔබ එයට බැසගත් විට, විධාන කේතනය කිරීමේ අද්විතීය ක්‍රමයක් සහිත මූලික සිරස් හැසිරවීමේ විධානයන් කිහිපයක් පමණි. මම පුද්ගලිකව සිතන්නේ ඒවා රූපයක කේතනය කිරීම ඉතා හොඳ අදහසක් බවයි.
ස්පෙන්සර්

13
අපි ක්‍රියාකාරී සමානතාව ගැන කතා කරන්නේ නම්, ඔබට ඇසිය හැකිය "එය ටියුරින් යන්ත්‍රයකට වඩා වෙනස් වන්නේ කෙසේද?" නමුත් ඔබට එම ප්‍රශ්නයම බළලෙකු හෝ බ්‍රහස්පති ග්‍රහයා හෝ වෙනත් ඕනෑම භාෂාවකින්
සමතලා කළ හැකිය

3
9 කෝඩල් උදාහරණය කුඩා පොක්බෝල් එකක් මෙන් පෙනේ. හොඳයි.
The_Basset_Hound

153

> <> (මාළු)

(සටහන: සමහර ස්නිපෙට් පෙර ස්නිපෙට් මත ගොඩනගා ඇත, එබැවින් බොහෝ පිළිතුරු මෙන් නොව මම ඒවා මුල් සිට නවතම දක්වා තැබීමට තීරණය කළෙමි.)

ෆැක්ටොයිඩ්:

Befunge මෙන්,> <> යනු තොග මත පදනම් වූ 2D භාෂාවකි. මෙයින් අදහස් කරන්නේ බොහෝ සාම්ප්‍රදායික භාෂාවන් මෙන් උපදෙස් රේඛීයව ක්‍රියාත්මක නොවන බවයි - වැඩසටහන් ප්‍රවාහය ඉහළට, පහළට, වමට හෝ දකුණට විය හැකිය!

දිග 1 ස්නිපටය:

X

X> <> හි වලංගු නොවන විධානයකි, එබැවින් දෝෂ පණිවිඩය something smells fishy...මුද්‍රණය වේ. ඇත්ත වශයෙන්ම,> <> හි ඇති එකම දෝෂ පණිවිඩය මෙයයි, හේතුව ශුන්‍යයෙන් බෙදීම හෝ හිස් තොගයක් පොප් කිරීමට උත්සාහ කිරීම.

දිග 2 ස්නිපටය:

1n

> <> හි වැඩසටහන් ප්‍රවාහය ඉහළ වමේ සිට ආරම්භ වන අතර මුලින් දකුණට වේ. 11 ක් තොගයට තල්ලු nකර එය අංකයක් ලෙස මුද්‍රණය කරයි (ASCII ප්‍රස්ථාරයකට වඩා වෙනස්ව). නමුත්> <> වැඩසටහන් ටොරොයිඩ් වේ, එයින් අදහස් කරන්නේ උපදෙස් දර්ශකය රේඛාවක අවසානය කරා ළඟා වන විට එය වටා එති. ඉතින් nඅපි ආරම්භයට ඔතා ගත් පසු , 1 ක් තල්ලු කරන්න, මුද්‍රණය කරන්න, ආරම්භයට ඔතා, 1 තල්ලු කරන්න, මුද්‍රණය කරන්න ... එවිට අපි 1සදහටම මුද්‍රණය අවසන් කරමු!

දිග 3 ස්නිපටය:

"o;

මෙන්න "නූල් විග්‍රහ කිරීම, oASCII වරහනක් ලෙස ප්‍රතිදානය කිරීම සහ ;වැඩසටහන අවසන් කිරීම. නමුත් වැඩසටහන ඇත්ත වශයෙන්ම සමස්තයක් ලෙස කරන්නේ කුමක්ද?

හොඳයි, පළමුව අපි නූල් විග්‍රහ කිරීම ආරම්භ කර, අප දකින සෑම වර්‍ගයක්ම වසා දැමීමක් සොයා ගන්නා තෙක් තොගයට තල්ලු කරමු ". අපි o, පසුව a ;... තල්ලු කර උපදෙස් දර්ශකය නැවත ආරම්භයට ඔතා. එහෙත් අපට දැන් ඉන්නේ "අපි එසේ නතර string අන්තහ්කරණය, සහ අවසානයේ අපි ක්රියාත්මක oසහ ;අඩුක්කුව (මෙම ඉහළ මුද්රණය කිරීම සාමාන්ය ලෙස ;) සහ අවසන්.

ඔව්, නූලක් ආරම්භ කිරීමට සහ අවසන් කිරීමට අපි එකම උපුටා දැක්වීමේ වර්‍ගය භාවිතා කර ඇත්තෙමු!

දිග 4 ස්නිපටය:

42n;

අප මෙතෙක් දුටු දේ මත පදනම්ව, මෙය 42 ක් තල්ලු කරනු ඇතැයි ඔබ අපේක්ෂා කළ හැකිය, ප්‍රතිදානයක් සංඛ්‍යාවක් ලෙස පසුව අවසන් වේ. නමුත්> <> හි ඇති සියලුම උපදෙස් තනි අක්ෂර වේ, එබැවින් මෙය ඇත්ත වශයෙන්ම 4 සහ 2 තල්ලු කරයි , පසුව තොගයේ මුදුන සංඛ්‍යාවක් ලෙස ප්‍රතිදානය කරයි (2 පමණි) සහ අවසන් වේ.

දිග 5 ස්නිපටය:

<v
;>

මතක තබා ගන්න,> <> 2D භාෂාවක්. මෙයින් අදහස් කරන්නේ වැඩසටහන් ප්‍රවාහයේ දිශාව වෙනස් කිරීමට ක්‍රම තිබිය යුතු බවයි!

Befunge මෙන්, ඔබට මෙය කළ හැකි එක් ක්‍රමයක් වන්නේ ඊතල හරහා ය >^v<. ඒවා ක්‍රියාත්මක වන ආකාරය නිදර්ශනය කිරීම සඳහා, ඉහත වැඩසටහන දෙස බලමු:

  • වැඩසටහන් ප්‍රවාහය මුලින් දකුණට ය
  • < ක්‍රමලේඛය වමට ගලා යයි - අපි වමට ගොස් වටේට ඔතා v
  • v ක්‍රමලේඛය පහළට ගලා යයි - අපි පහළට යමු >
  • > ක්‍රමලේඛය දකුණට ගලා යයි - අපි දකුණට ගොස් වටේට ඔතා ;
  • අවසාන වශයෙන්, අපි අවසන් කරමු.

දිග 6 ස්නිපටය:

";"00p

> <> හි තවත් සිසිල් ලක්ෂණයක් වන්නේ එය ප්‍රත්‍යාවර්තක වීමයි - වැඩසටහනට පියාසර කරන විට එහි ප්‍රභව කේත වෙනස් කළ හැකිය!

මෙන්න අපි a තල්ලු කරන්නෙමු ;, ඉන්පසු ශුන්‍ය දෙකක්. pපසුව ඉහල අංග තුනක් මඟින් y, x, v( yමෙම සිරස් එකතුවේ ඉහල වීම) සහ ස්ථාන vමේ ස්ථානය x,y. වෙනත් වචන වලින් කිවහොත්, pමෙම වැඩසටහනේ 0,0කේතය බවට හරවා අර්ධ සළකුණක් ස්ථානගත කරයි ;;"00p. උපදෙස් දර්ශකය දැන් එතෙර වී අලුතින් ස්ථානගත කර ඇති බැවින් මෙය වැඩසටහන අවසන් කිරීමට ඉඩ දෙයි ;.

දිග 7 ස්නිපටය:

\7*n;
6

එක්සත් ජාතීන්ගේ Befunge මෙන්> <> ද කැඩපත් (ඇත \/|_#වැඩසටහන ගලා යන දිශාව පෙන්නුම් කරන). ඉතින් මෙන්න අපි:

  • දකුණට ආරම්භ කරන්න, නමුත් \පරාවර්තනය අපව පහළට පිළිබිඹු කරයි
  • 6 ක් තල්ලු කර ඔතා
  • පිටුපස පැත්තට පහර දී \නැවත දකුණට පරාවර්තනය කරන්න
  • 7 ක් තල්ලු කරන්න
  • තොගයේ ඉහළම දෙක ගුණ කරන්න
  • ප්‍රතිදානය සහ අවසන් කිරීම

_දර්පණයක් හරහා හෝ සිරස් අතට කැඩපතක් හරහා තිරස් අතට ගමන් |කිරීම කිසිසේත්ම සුදුසු නැත.

දිග 8 ස්නිපටය:

"r00g>o<

දෝෂයක් විසි කිරීමට ඉඩ දෙන්නේ නම් බොහෝ විට සරලම> <> quine. මෙහි නව උපදෙස් දෙක නම්:

  • r: තොගය ආපසු හරවන්න
  • g: ලබා ගන්න - පොප් කරන්න y, xසහ අක්‍ෂරය x,yසිරස් අතට තල්ලු කරන්න (ප්‍රතිවිරුද්ධ පාර්ශවය p)

පෙර සිටම නූල් එතීමේ උපක්‍රමය භාවිතා කරමින්, වැඩසටහන මුලින් තල්ලු කර r00g>o<නැවත පළමු උපුටා දැක්වීමට පහර දෙයි. පසුව තොගය ආපසු හරවනු <o>g00rලැබේ. ඊට පස්සෙ අපි දාන්න දෙන්න 0,0, ද ", දෙන්න <o>g00r". අවසාන වශයෙන්, අපි oඊතල දෙකක් අතර සිරකර, කිසිවක් ඉතිරි නොවන තෙක් තොගයේ මුදුන ප්‍රතිදානය කර අපට දෝෂයක් ඇති වේ.

දිග 9 ස්නිපටය:

x0\>
\1n>

x(කුඩා අකුරු) උපදෙස් දර්ශකය අහඹු දිශාවකට ගෙන යන අතර වැඩසටහන අහඹු බිටු සදහටම මුද්‍රණය කිරීමෙන් මෙම ක්‍රියාකාරීත්වය පෙන්වයි. මෙය ක්‍රියාත්මක වන්නේ කෙසේදැයි දැන ගැනීමට ඊතල සහ දර්පණ අනුගමනය කිරීමට උත්සාහ කරන්න! (ඉහළ සහ වම ඇතුළුව දිශාවන් හතරම පරීක්ෂා කිරීමට අමතක නොකරන්න)

දිග 10 ස්නිපටය:

;a comment

> <> හි අදහස් දැක්වීමේ වාක්‍ය ඛණ්ඩයක් නොමැත - එයට එකක් අවශ්‍ය නොවේ. ඔබට අවශ්‍ය ඕනෑම තැනක ලියා එය කේතයක් ලෙස ක්‍රියාත්මක නොවන බවට වග බලා ගන්න!

දිග 11 ස්නිපටය:

1!X2!X+!Xn;

!ට්‍රම්ප් මඟ පෙන්වීම මඟ හැරේ. කොන්දේසි සහිත ට්‍රම්ප් ?රථයක් භාවිතා කරන විට එය විශේෂයෙන් ප්‍රයෝජනවත් වේ . මෙය පසුව ක්‍රියාත්මක වන්නේ කෙසේදැයි අපි බලමු.

ඉහත කේතය 3 මුද්‍රණය කරන්නේ Xs මඟ හැර , ක්‍රියාත්මක කිරීම පමණි 1! 2! +! n;.

දිග 12 ස්නිපටය:

01v
ao>:@+:n

1එක් එක් පේළියේ එකක් වන තත්පරයෙන් ආරම්භ වන ෆිබොනාච්චි අංක සදහටම මුද්‍රණය කරයි . නව විධානයන් වනුයේ:

  • a: නව රේඛාව සඳහා අපට අවශ්‍ය 10 තල්ලු කරන්න. a-fපිළිවෙලින් 10 සිට 15 දක්වා තල්ලු කරන්න.
  • :: තොගයේ ඉහළ අනුපිටපත
  • @: තොගයේ ඉහළම අංග තුන කරකවන්න, උදා [5 4 3 2 1] -> [5 4 1 3 2].

පළමු පුනරාවර්තන කිහිපය සොයා ගන්න:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

දිග 13 ස්නිපටය:

i:d=?v
l?!;o>

ආදාන රේඛාවකින් කියවා එය ආපසු හරවන "ටැක්" වැඩසටහනකි. ස්නිපටය සඳහා omstomsmeding ට ස්තූතියි.

=ඉහළම මූලද්‍රව්‍ය දෙක මතු වී 1 සමාන නම් 1 තල්ලු කරයි. පළමු පේළිය ASCII char 13 (කරත්ත ආපසු) සොයා ගන්නා තෙක් ආදාන කියවීම දිගටම කරගෙන යයි, එම අවස්ථාවේදී එය දෙවන පේළියට ගමන් කරයි.

මෙම l?!;oලූපය සමස්ත අඩුක්කුව ප්රතිදානයනට වන> <> වැදගත් ඉදිකිරීමක් වේ. මෙන් නොව >o<, එය කිසිදු දෝෂයක් ඇති නොකරයි. එය ක්‍රියාත්මක වන ආකාරය මෙයයි:

  • l තොගයේ දිග තල්ලු කරයි
  • අපි මෙහි දිග පරීක්ෂා කරන්නේ ?:
    • දිග අස්ථිර නම්, ඊළඟ උපදෙස් !ක්‍රියාත්මක කරනු ලැබේ;
    • දිග නම් විය ශුන්ය, ඉන් පසුව අපි ක්රියාත්මක කරන්නේ නැහැ !සහ හේතුවෙන් අවසන්;

ඔබ කරත්ත ආපසු එන තෙක් කිසිදු ප්‍රතිදානයක් සත්‍ය වශයෙන්ම සිදු නොවන බව සලකන්න.

දිග 14 ස්නිපටය:

32.

   X67*n;

ක්‍රමලේඛ ප්‍රවාහයේ දිශාව වෙනස් කිරීමට අමතරව, ඔබට සැබවින්ම ඔබ කැමති ඕනෑම තැනක උපදෙස් දර්ශකය ගෙන යා හැකිය!

.පොප් y, xහා උපදෙස් පහිටුම් දක්වනය teleports x,yදිශාව පවත්වා,. කෙසේ වෙතත්, ඔබට යාමට අවශ්‍ය ස්ථානයට පෙර එක් චතුරශ්‍රයකට යා යුතු බව සලකන්න - ඊළඟ උපදෙස් ක්‍රියාත්මක කිරීමට පෙර උපදෙස් දර්ශකය යාවත්කාලීන වේ. එබැවින් මෙහි උපදෙස් දර්ශකය අවලංගු වේ X, නමුත් 6අඛණ්ඩව ක්‍රියාත්මක කිරීමට පෙර දර්ශකය චලනය වන බැවින් සියල්ල හරි ය .

.බොහෝ> <> වැඩසටහන් එක්-ලයිනර් බවට පරිවර්තනය කිරීමට හැකි කරයි, නමුත් ඔබට 2D හි විනෝදය නැති කර ගැනීමට අවශ්‍ය ඇයි? :)

දිග 15 ස්නිපටය:

01+:aa*=?;:nao!

සංඛ්යා මුද්රණය 0කිරීමට 99එක් එක් මාර්ගයේ එක්. මෙම වැඩසටහන මගින් ට්‍රම්ප්ගේ පිළිවෙලට භාවිතයක් පෙන්නුම් කරයි !- ආරම්භක 0 තල්ලු කරනු ලබන්නේ එක් වරක් පමණක් බව සහතික කිරීම සඳහා.

දිග 16 ස්නිපටය:

"r00g!;oooooooo|

Esolang පිටුවේ ඇති quine විසින් දේවානුභාවයෙන් දෝෂ විසි නොකරන නිසි quine .

දෝෂයක් ඇති නොවන පරිදි පෙර ක්වීන් (ස්නිපෙට් # 8) වෙනස් කරන්නේ කෙසේදැයි ඔබ කල්පනා කර ඇත්නම් සහ "ඇයි මම oඋපදෙස් ටොන් එකක් එකතු නොකරන්නේ ?" යනුවෙන් සිතුවහොත්, oඔබ එකතු කරන සෑම දෙයක් සඳහාම ඔබට වැටහෙනු ඇත. , ඔබට තවත් ප්‍රතිදානයක් කිරීමට අවශ්‍යයි o! මෙම ක්වීන් එක පිළිවෙලින් |දර්පණයක් තබා ගැටළුව නිරාකරණය කරයි , එමඟින් එක් එක් දෙවරක්o භාවිතා කිරීමට ඉඩ ලබා දේ .

අපි තනි උපුටා දැක්වීම් වලට මාරු වුවහොත් (ඒවා නූල් විග්‍රහ කිරීම සඳහා ද වේ), එවිට භාවිතා නොකරන විකල්ප ක්වයින් එකක් gවේ

'r3d*!;oooooooo|

දිග 17 ස්නිපටය:

b2,63,.

   17,n;

අපට එකතු කිරීම් ( +), අඩු කිරීම ( -), ගුණ කිරීම ( *), මොඩියුලෝ ( %) ඇත ... නමුත් බෙදීම ගැන කුමක් කිව හැකිද? එය එහි ඇත, නමුත් /දැනටමත් කැඩපතක් බැවින් බෙදීම ,වෙනුවට සංකේතය පවරා ඇත . සිත්ගන්නා කරුණ නම්, බෙදීම යනු පාවෙන බෙදීම මිස පූර්ණ සංඛ්‍යා බෙදීම නොවේ!

ඉහත වැඩසටහන පැනීමට උත්සාහ කිරීමෙන් නිර්වචනය නොකළ හැසිරීම් ගවේෂණය කරයි 11/2, 6/3. මෙම intepreter Python දෙවන නොවේ නම් එහි ප්රථම සම්බන්ධීකරණය නම්, හරිද පෙනේ යනු පූර්ණ සංඛ්යාවකි (එය වැරදි ස්ථානයට පනී වුවත්), නමුත් තිත්තකම නොවේ.

දිග 18 ස්නිපටය:

123456${{$}nnnnnn;

rතොගය ආපසු හරවන සහ @ඉහළම මූලද්‍රව්‍ය තුන භ්‍රමණය වන දේ අපි දැක ඇත්තෙමු . තොගයේ මූලද්‍රව්‍ය ගෙන යන තවත් විධාන කිහිපයක් මෙන්න:

  • $: ඉහළම මූලද්රව්ය දෙක මාරු කරන්න
  • {: සම්පූර්ණ තොගය වමට මාරු කරන්න
  • }: සම්පූර්ණ තොගයම හරවන්න

මෙය ක්‍රියාත්මක වන ආකාරය පෙන්වීමට, වැඩසටහන් හෝඩුවාව මෙන්න:

123456 ------> 123465 ------> 234651 ------> 346512 ------> 346521 ------> 134652
       $ Swap        { L shift      { L shift       $ Swap        } R shift

එවිට අපි ලබා දෙමු 256431.

දිග 19 ස්නිපටය:

"reward"4[roooo]oo;

මේ දක්වා මම කියන්නේ "තොගය", "තොගය" ...

බොහෝ වැඩසටහන් භාවිතා කරන්නේ එක් තොගයක් පමණක් වුවද,> <> ඇත්ත වශයෙන්ම බහු තොග තිබිය හැකිය! අදාළ උපදෙස් මෙන්න:

  • [: xඉහළ xඅංග නව පොකුරක් වෙතට ගෙන යයි
  • ]: වත්මන් තොගය ඉවත් කර එහි අගයන් යටි තොගයට ගෙන යයි.

ඉහත වැඩසටහන සඳහා හෝඩුවාව මෙන්න:

       [r e w a r d]       Push "reward"
4[     [r e] [w a r d]     Move four elements to a new stack
r      [r e] [d r a w]     Reverse the current stack
oooo   [r e] []            Output "ward"
]      [r e]               Remove the current stack, no values to move
oo     []                  Output "er", giving "warder" altogether

rewardතොගවල “පළමුවැන්න, අන්තිමයා” ස්වභාවය නිසා එය තල්ලු කර නැවත ප්‍රතිදානය කිරීමෙන් ooooooමුද්‍රණය වන බව සලකන්න drawer.

දිග 20 ස්නිපටය:

aa*5+\
7a*2+\
oo;  \

> <> හි මඳක් දන්නා ලක්ෂණය නම්, පයිතන් මෙන්, බැක්ස්ලෑෂ් බොහෝ අවස්ථාවන්හි රේඛීය අඛණ්ඩතාව සඳහා භාවිතා කළ හැකිය. *

ඉහත කේතය ක්‍රියාකාරීව සමාන වේ

aa*5+7a*2+oo;

වියාචනය: මෙය ක්‍රියාත්මක වීමට හේතුව සම්පූර්ණයෙන්ම වෙනස් හේතුවක් නිසා විය හැකිය

දිග 22 ස්නිපටය:

1&fv ;n&<
&1->:0=?^:&*

තොග වලට අමතරව,> <> හි අගයන් ගබඩා කිරීම සඳහා භාවිතා කළ හැකි රෙජිස්ටර් (එක් එක් තොගයට එකක්) ඇත. ඇමතුම් &පළමු වරට ලියාපදිංචි කිරීම සඳහා සිරස් එකතුවේ ඉහල අගය පෙලඹෙන්නේ, හා ක්රියාත්මක &නැවත නැවත අගය ගමන් කරයි. අගයක් සමුච්චය කිරීමේදී මෙය ඉතා ප්‍රයෝජනවත් වේ, උදාහරණයක් ලෙස එකතුව සහ සාධක.

ඉහත වැඩසටහන f1307674368000 මුද්‍රණය කරමින් (15) හි සාධකය ගණනය කරයි. fආදේශ කිරීම සඳහා හෝඩුවාව මෙන්න 4:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

දිග 24 ස්නිපටය:

"Hello, World!"rl?!;of0.

සෑම කෙනෙකුගේම ප්‍රියතම වැඩසටහන සඳහා අපට ප්‍රමාණවත් අක්ෂර තිබේ! මෙන්න අපි .ප්‍රතිදාන ලූපය සඳහා ටෙලිපෝටර් භාවිතා කරමු .

දිග 25 ස්නිපටය:

0i:0(?v$a*$"0"-+!
   ;n~<

අවාසනාවට> <> වරකට STDIN එක වර්‍ගයකින් කියවීමට පමණක් ඉඩ සලසයි, එමඟින් සංඛ්‍යා කියවීම ටිකක් උපක්‍රමශීලී වේ. 0-9 ඉලක්කම් වලින් සමන්විත ආදානය සඳහා, මෙම වැඩසටහන අත්‍යවශ්‍යයෙන්ම atoi වන අතර, STDIN වෙතින් ඉලක්කම් මාලාවක් තොගයේ අංකයක් බවට පරිවර්තනය කරයි (පසුව එය මුද්‍රණය කෙරේ).

තවත් සටහනක් නම්, ඊඕඑෆ් හි i-1 තොගයට තල්ලු කිරීමයි. මෙය 0 භාවිතා කිරීම (හෝ "වඩා අඩු" සමඟ සංසන්දනය කිරීමෙන් EOF පරීක්ෂා කිරීම පහසු කරයි .

මෙම ස්නිපටය ද භාවිතා කරයි ~, එමඟින් තොගයේ ඉහළ අංගය ඉස්මතු වේ.

දිග 33 ස්නිපටය:

i>:nao:1=?;\
 ^  ,2v?%2:/
 ^+1*3<

මේ දක්වා, බොහෝ ස්නිපෙට් සාපේක්ෂව රේඛීය හෝ> <> හි ක්‍රියාකාරීත්වය පෙන්නුම් කරන සරල උදාහරණ පමණි. හොඳින් සැකසූ වැඩසටහනක් සමඟ> <> හි වැඩසටහන් ප්‍රවාහය දෘශ්‍යමාන කිරීම කොතරම් පහසුද යන්න ඉස්මතු කරන උදාහරණයක් මට දැන් දිය හැකිය.

වැඩසටහන තනි ASCII අක්ෂරයකින් කියවන අතර 3x+1එහි කේත ලක්ෂ්‍යය මත ඇල්ගොරිතම ක්‍රියාත්මක කරයි (In> <>, අක්ෂර මූලික වශයෙන් පූර්ණ සංඛ්‍යා වේ). අපි 1 පහර දෙන තෙක් ඇල්ගොරිතමයේ සෑම පියවරක්ම මුද්‍රණය කෙරේ.

ආදානය සමඟ පළමු පුනරාවර්තන කිහිපය සඳහා හෝඩුවාවක් මෙන්න a(කේත ලක්ෂ්‍යය 97):

රූප විස්තරය මෙහි ඇතුළත් කරන්න

දිග 44 ස්නිපටය:

a&>i:0(?v"+"$\
/&^?=0l< "a*"/
\:1+&2p/\0
n
;

p# 6 වන කොටසෙහි නැවත වරක් එය භාවිතා කර ඇති නිසා මම යුක්තිය යන විධානය කර ඇති බවක් මට හැඟෙන්නේ නැත , එබැවින් මෙන්න වෙනස් atoi ශ්‍රිතයක්. මේ ගැන සිසිල් වන්නේ කුමක් ද? වැඩසටහන ආදානය කියවන විට අංකය ගණනය කිරීමට අවශ්‍ය ප්‍රකාශනය ලියයි !

එබැවින් ආදාන වැනි 573, සියලු අක්ෂර කියවීමෙන් පසු තෙවන පේළියේ අවසානය පෙනෙනු ඇත \0a*5+a*7+a*3+, එය 573 දක්වා තක්සේරු කරයි!

නැවත වරක්, ආදානය ඉලක්කම් පමණක් වනු ඇතැයි අපේක්ෂා කෙරේ. මෙහි GIF සොයා ගන්න .

දිග 74 ස්නිපටය:

>i:'A'(?v:'N'(?v:'['(?v\
  :'a'(?v:'n'(?v:'{'(?v\
^      o<    +d<  -d-d<o

ඔබ මෙතැනට බැසීමට සමත් වී ඇත්නම්, මෙය ඉතා කියවිය හැකි ROT13 වැඩසටහනක් යැයි මා කී විට ඔබ මා සමඟ එකඟ වනු ඇත. ප්‍රස්ථාරයක් ලබා දී ඇති විට c1, පළමු වර්‍ගය අපට හමු c2වේ AN[an{, එනම් c1 < c2, d(13) එකතු කිරීමෙන් / අඩු කිරීමෙන් සුදුසු ඕෆ්සෙට් යොදන්න . සටහන බව [හා {සෘජු පසු chars වේ Zහා zපිළිවෙළින්.

කොන්සෝලය තුළ එය උත්සාහ කරන්න, ඔබ ටයිප් කරන විට අකුරු පරිවර්තනය වන ආකාරය බලන්න!

(ඔබ ද හැකි ආදාන දී නල, නමුත් මම අතුරුදහන් කරනවා ඇති EOF පරීක්ෂා ලෙස :0(?;එය කටු ලෙස මුද්රණය කිරීමට -1 උත්සහ ගත් විට එය දෝෂයක් සමග නතර කරන්නම්)


i:d=?v NEWLINE o;!?l<
ස්නිපටය

12
මට තව ඡන්දය ලබා දීමට හැකි වේවායි ප්‍රාර්ථනා කරමි, ඉගෙනීම ආරම්භ කිරීමට මා දැන් පෙලඹී ඇත> <> ...
රොබොබෙන්ක්ලයින්

6
ඉහළින් ආරම්භ කර පහළට යාම සඳහා +1 (කියවීම විනෝදයක් වන නිසාත්).
mbomb007

5
order mbomb007 ඇණවුමට වමට / දකුණට ගොස් පිටුවේ පහළට එතීමට නොහැකි වීම
ලැජ්ජාවකි

ඔබ something smells fishy...ඊළඟ පේළියේ ලිවුවහොත් ඔබේ දිග 8 ස්නිපටය සැබෑ ක්වීන් එකක් වනු ඇත .
wizzwizz4

147

සී - සංස්කරණය කරන්න

ඡන්ද වලට ස්තූතියි! වෙනත් භාෂාවන් හා සසඳන විට සහ සීමිත බයිට් වලින් ඔවුන්ට කළ හැකි දේ, සී යල් පැන ගිය, අවුල් සහගත සහ සංවර්ධකයා මත රඳා පවතී. බොහෝ ආකාරවලින් එය නම්: ස්වයංක්‍රීය මතක කළමනාකරණය සහිත ස්ක්‍රිප්ට් සහ ඉහළ මට්ටමේ භාෂාවන් සී වෙන කවරදාටත් වඩා ප්‍රකාශිත හා නිෂ්පාදනයට ඉක්මන් වේ.

ඉතින් ඇයි C විශේෂාංගය?

එම සියලු ස්ක්‍රිප්ටින් භාෂාවන්හි සැඟවුණු රහස නම් පරිවර්තකයන් සී (හෝ වඩාත් මෑතකදී සී ++ හෝ ජාවා) වලින් ලියා ඇති බවයි. පළමු C ++ සම්පාදකයින් සැබවින්ම C කේතයට සම්පාදනය කරන ලදි. ඇත්ත වශයෙන්ම, comp ජු සම්පාදකයෙකු සඳහා වෙළඳපොළක් පවතින තුරු, සාමාන්‍යයෙන් C උත්පාදනය කිරීම සඳහා සම්පාදකයෙකු ලිවීම වඩා ලාභදායී වේ, පසුව එය සම්පාදනය කරන්න.

ඔබ ඉතා කුඩා වේදිකාවල වැඩ කරන්නේ නම්, සමහර විට මෙහෙයුම් පද්ධතියක් නොමැතිව වුවද, ඔබ සී හි වැඩ කිරීමට ඉඩ තිබේ. මේ දිනවල සෑම උපකරණයකටම මයික්‍රොකොන්ට්රෝලර් ඇතුළත් කර ඇති අතර, සී හි වැඩසටහන්ගත කර ඇති බවට සැකයක් නැත. කුඩා හා වේගවත්, සී යනු යා යුතු මාර්ගයයි. (තව දුරටත්, මැසොකිවාදීන් සඳහා.)

සී දැන ගැනීම ඔබට එකලස් කරුවෙකු බවට පත් නොවී යා හැකි තරම් ලෝහයට සමීප වන අතර වෙනත් භාෂාවලින් ඔබට උපකාරී වේ. C ++ අතථ්‍ය ශ්‍රිතයක් ක්‍රියා කරන ආකාරය ඔබට හොඳ අදහසක් ඇත. ඔබ PHP හි අගය හරහා පුනරාවර්තන කාර්යයන් ලියන විට, අභ්‍යන්තරව එය බොහෝ මතක වෙන් කිරීම් සහ පිටපත් කිරීමක් සිදු කරන බව ඔබ දන්නවා, එබැවින් ඔබ සහජයෙන්ම පාස්-බයි-යොමු කිරීම උත්සාහ කරන්න. ඇමතුම් සහ යොමු කිරීම් සී සංවර්ධකයින් විහිළුවට ලක් නොකරයි, සමහර විට හස්කල් එසේ කරයි.

2 වන සංස්කරණයේ සම්භාව්‍ය සී ක්‍රමලේඛන භාෂාවේ පෙරවදනෙහි කර්නිගන් සහ රිචී සඳහන් කළ පරිදි , සී යනු විශාල භාෂාවක් නොවන අතර එය විශාල පොතකින් හොඳින් සේවය නොකෙරේ. මම මෙම උපදෙස් පිළිපැදීමට උත්සාහ කරමි: උදාහරණ හැකි නම් ද්විත්ව, ත්‍රිත්ව හෝ වැඩි රාජකාරියක් කරන්න.

සියලුම ස්නිපෙට් අවම වශයෙන් තනිවම සම්පාදනය කළ හැකිය. සම්බන්ධ කළ හැකි සහ ක්‍රියාත්මක කළ හැකි ඒවා එසේ දැක්වේ. මෙය අවශ්‍යතාවයක් නොවන බව මම දනිමි, නමුත් එය ඕනෑම කේත ස්නිපටයක් වැඩ කිරීමට අවශ්‍ය රාමුව පැහැදිලි කිරීමට උත්සාහ කරනවාට වඩා සරල කරයි.

එක් එක් කේත ස්නිපටය හැකිතාක් කෙටි බව තහවුරු කර ගැනීමට මම උත්සාහ කළෙමි, එවිට මම එක්තරා දිගකට පෑඩ් කිරීමට අමතර ඉඩක් හඳුන්වා නොදෙමි. කේතය ඇතුලත් කර ඇති අවස්ථාවන්හිදී, ඉන්ඩෙන්ට්ස් දිගට ඇතුළත් නොවේ, එක් එක් නව පේළියට එක් අක්ෂරයක් පමණි.

ෆැක්ටොයිඩ්

සී පාෂාණ.

දිග 0 ස්නිපටය

ලොව කෙටිම ස්වයං ප්‍රජනන වැඩසටහන http://www.ioccc.org/1994/smr.hint

දිග 1 ස්නිපටය

;

C සම්පාදනය හා සම්බන්ධ කිරීම අතර වෙනසක් කරයි. C හි බොහෝ ආයතන පසුව සම්පාදනය කර පසුව සම්බන්ධ කර ඇත - උදාහරණයක් ලෙස සියලු ස්ථිතික හා ගතික පුස්තකාල.

වෙනත් ආයතන දැන් ඇතුළත් කර ඇති අතර ඒවා තනිවම කේතයක් ජනනය නොකරයි.

ඉහත අර්ධ-මහා බඩවැල නිසැකවම වස්තු කේතයට සම්පාදනය වන අතර කිසිවක් නොකරනු ඇත!

දිග 2 ස්නිපටය

x;

සී, පැරණි ක්‍රමලේඛන භාෂාවක් වන අතර, පුනරාවර්තන කිහිපයක් හරහා ගොස් ඇත. පැරණිතම භාවිතයේ මුල්ම කාලය කර්නිගන් සහ රිචී විසින් සංවර්ධනය කරන ලද අතර කෙටියෙන් කේ ඇන්ඩ් ආර්. ඔබේ කේතය පැහැදිලිව ලබා නොදෙන්නේ නම් K & R C සැලකිය යුතු ය.

විශේෂයෙන්, කේ ඇන්ඩ් ආර් සී හි, ඉහත කේතය x0 ට ආරම්භ කරන ලද ගෝලීය පූර්ණ සංඛ්‍යාවක් ලෙස උපකල්පනය කෙරේ. එය කේ ඇන්ඩ් ආර් ප්‍රකාරයේදී සම්පාදනය කිරීමෙන් වස්තු ගොනුවක් නිපදවනු ඇති අතර එමඟින් මෙම විචල්‍යයට සම්බන්ධ වන ඕනෑම වැඩසටහනක් එහි භාවිතය සඳහා සපයයි.

දිග 3 ස්නිපටය

??/

C කොතරම් පුළුල්ද යත්, එය භාවිතා කරන සියලුම අක්ෂර නොමැති පද්ධති සඳහා අනුකූලතා විශේෂාංග සැපයීමට අවශ්‍ය වේ. ඉහත දැක්වෙන්නේ බැක්ස්ලෑෂ් සඳහා ප්‍රේරකයක් වන අතර එය සී හි රේඛීය අඛණ්ඩ අක්‍ෂරයක් ලෙස භාවිතා කරයි. පහත දැක්වෙන පේළියක් නොමැති බවට අනතුරු ඇඟවීමක් සමඟ ඉහත කරුණු සම්පාදනය කරනු ඇත.

C හි පොදු සංස්කෘතියක් වන්නේ සම්පාදක අනතුරු ඇඟවීම් නොසලකා හැරීම වන අතර බොහෝ විශාල කේත පදනම් නිරන්තරයෙන් ඒවා ගොඩනඟන විට අනතුරු ඇඟවීම් කිහිපයක් හෝ වැඩි ගණනක් ඇත.

දිග 4 ස්නිපටය

f();

කේ ඇන්ඩ් ආර් සමඟ නැවතත්, ඉහත සඳහන් දෑ පුරවා ඇත්තේ "ගෝලීය සම්බන්ධතා සහිත ශ්‍රිතයක් fපසුව සැපයිය යුතු අතර එය ස්ථාවර නමුත් නිශ්චිතව දක්වා නැති තර්ක ගණනක් ගෙන පූර්ණ සංඛ්‍යාවක් ලබා දෙයි."

මෙය සහ අතර ඇති මූලික වෙනස්කම් සැලකිල්ලට ගන්න f;.

දිග 5 ස්නිපටය

s="";

K&R C සැබවින්ම සමාව දීම කැපී පෙනේ. සම්පාදනය කිරීමෙන් පසු, මෙම කේතය sගෝලීය සම්බන්ධතාවයක් සඳහා පූර්ණ සංඛ්‍යාවක් සපයනු ඇති අතර එය හිස් නූලක ආරම්භක ලිපිනයට ආරම්භ කරනු ලැබේ (මම හිතන්නේ). කේ ඇන්ඩ් ආර් නිශ්ශබ්දව ලිපිනය රඳවා ගැනීමට පූර්ණ සංඛ්‍යාවක් ප්‍රමාණවත් නොවන්නේ නම් කප්පාදු කිරීම ඇතුළුව සියලු බලහත්කාරයන් හසුරුවයි.

එය සොයා ගැනීමට අපහසු දෝෂ රාශියක් ජනනය කර ඇති අතර IOCCC තරඟ සඳහා විශාල ආශ්වාදයක් ලබා දී ඇත.

දිග 6 ස්නිපටය

o=042;

පරණ ටයිමරවල ගොචා, වචනයේ පරිසමාප්ත අර්ථයෙන්ම 0 යනු පහත දැක්වෙන ඉලක්කම් අෂ්ටක පදනමේ ඇති බවයි. ඉහත කේතය, සම්පාදනය කිරීමෙන්, oදශම 34 ට ආරම්භ කරන ලද ගෝලීය සම්බන්ධතාවය සඳහා පූර්ණ සංඛ්‍යාවක් සපයනු ඇත .

සී හි මෙම ලක්ෂණය බොහෝ සංවර්ධකයින්ට ඔවුන්ගේ සංඛ්‍යා පෑඩ් කිරීමට උත්සාහ කර ඇති අතර ඒවා ලස්සන හා පවා පෙළ ගැස්වීමට සලස්වයි!

දිග 7 ස්නිපටය

f(){f;}

ඉහත කේතය ශරීරයක් සහිත ශ්‍රිතයකි. නමුත් එය කරන්නේ කුමක්ද? එය ශ්‍රිතයේ ලිපිනය ලබා ගන්නා අතර එය සමඟ කිසිවක් නොකරයි! සාමාන්‍යයෙන් ශ්‍රිතය නැවත පැමිණෙන්නේ කුමක් ද යන්න නිර්වචනය කර නැත. මෙවැනි විකාර කේත බොහෝ විට අනතුරු ඇඟවීමකින් තොරව සම්පාදනය කළ හැකිය.

දිග 8 ස්නිපටය

main(){}

මෙය සී හි ඇති කෙටිම සම්පාදනය කළ හැකි හා සම්බන්ධ කළ හැකි කේතය නියෝජනය කරයි. සී හි නවීන සංස්කරණ වලදී, සාමාන්‍යයෙන් කාර්යයන් ව්‍යංගයෙන් අර්ථ දැක්විය නොහැක, historical තිහාසික හේතූන් මත මෙම සීමාව ලිහිල් වේ main.

0 ක් හැර වෙන කිසිවක් නොකරන වැඩසටහනක මෙම පුදුමය නොසැලකිලිමත් නොවන ප්‍රමාණයට සම්පාදනය වන අතර විවිධ සී ධාවන කාල ක්‍රියාකාරකම් සමඟ සම්බන්ධ වේ. කබාය යටතේ සිදුවන්නේ කුමක්දැයි බැලීමට ඔබට සම්පුර්ණයෙන්ම වාචික කට්ටලය සම්පාදනය කර සම්බන්ධ කළ හැකිය.

දිග 9 ස්නිපටය

#define Z

සී ශීර්ෂ ලිපිගොනු වල ප්‍රධානතම අංගය වන්නේ #defineපෙර සැකසුම් නියෝගයයි. සී වැඩසටහන් විවිධ අවස්ථා වලදී සම්පාදනය වන අතර මෙම එක් අදියරකදී මෙම අර්ථ දැක්වීම් ඒවායේ සත්‍ය අගයන් සමඟ ආදේශ කරනු ලැබේ.

තර්කයක් අස්ථානගත වූ විට, C යන්නෙන් ඇඟවෙනු ඇත 1, එබැවින් ඉහත සඳහන් වන්නේ ප්‍රභව කේතයේ 1කොතැනක Zහෝ භාවිතා වේ.

ඉහත සඳහන් දෑ සාමාන්‍යයෙන් ශීර්ෂ ගොනුවකට දමා #includeඅවශ්‍ය පරිදි d.

දිග 10 ස්නිපටය

enum{P,Q};

මෙම enumමූල පදය නියත මාලාවක් නිශ්චය කරන සමහර වර්ගය-ආරක්ෂිත ක්රමයක් සපයයි. නිර්වචන මෙන්, ඒවා බොහෝ විට ශීර්ෂ ලිපිගොනු වල භාවිතා වේ. ඉහත කේතය ඇතුළත් කළ විට P0 සහ Q1 හි පූර්ණ සංඛ්‍යාවක් ලෙස අර්ථ දැක්වේ .

දිග 11 ස්නිපටය

volatile v;

ප්‍රධාන volatileපදය නම් විචල්‍යයක් වෙනත් නියෝජිතයින් විසින් වෙනස් කළ හැකි බව සම්පාදකයාට දැන ගැනීමට සලස්වා එය ප්‍රවේශයන් අතර නියතව පවතිනු ඇතැයි උපකල්පනය නොකිරීමයි.

දිග 12 ස්නිපටය

#pragma once

#pragma once වර්තමාන ප්‍රභව ගොනුව එක් සම්පාදනයකට එක් වරක් පමණක් ඇතුළත් කළ යුතු බව දැක්වීමට සම්මත නොවන නමුත් පුළුල් ලෙස සහාය දක්වන පූර්ව සැකසුම් නියෝගයකි.

සාම්ප්‍රදායික හා පූර්ණ සහය දක්වන තාක්‍ෂණය නම් #includeඑකතු කළ කේතයේ අවාසි සහ නම ගැටුම් සමඟ ආරක්ෂකයින් භාවිතා කිරීමයි.

දිග 13 ස්නිපටය

w(){for(;;);}

සී හි සම්මුතීන් ගණනාවක් ඇති අතර, ඉන් එකක් නම් අනන්ත ලූප නියෝජනය කරන්නේ කෙසේද යන්නයි. මෙම අවස්ථාවෙහිදී, for(;;)ආරම්භයක් නොමැති බව පෙන්නුම් කරයි, පෙරනිමි 1 ට පෙරනිමි පරීක්‍ෂණයක් නැත සත්‍යය - එනම් කැඩී නොයන්න, සහ ලූප කේතයක් නොමැත.

සමහර විට ඇතුළත සෑම දෙයක්ම කළ හැකි ()අතර ලූපයට ශරීරයක් අවශ්‍ය නොවේ. මෙම අවස්ථාවේ දී අවසානයේ දී අර්ධ අර්ධ සළකුණක් එකතු වේ.

ඉහත කේතයේ, සම්පාදනය කරන විට, එය කාර්යබහුල කාර්යබහුල පුඩුවක් තුළට ඇතුළු වන ශ්‍රිතයක් සපයනු ඇත - මෘදුකාංග නිර්මාණයේ නැති අයගෙන් එකක් - සහ කිසි විටෙකත් ආපසු නොඑනු ඇත.

දිග 14 ස්නිපටය

int a[]={1,2};

C හි අරා සඳහා නිශ්චිත දිග අවශ්‍ය නොවේ. හිස් හතරැස් වරහන් []සම්පාදකයාට "එය ඔබම හදුනා ගන්න" යැයි කියයි. කෙසේ වෙතත්, සී හි, වෙනත් භාෂාවන් මෙන් නොව, මෙම සීමාවන්ට පිටින් අරාවකට ප්‍රවේශ වීම වැළැක්වීම සඳහා නිමැවුම් ක්‍රමයක් නොමැති අතර, එය සී ප්‍රසිද්ධියට පත්ව ඇති “පාදයට වෙඩි තබා ගන්න” රූපකයට මග පාදයි.

ඉහත කේතය, සම්පාදනය කරන විට, a1 සහ 2 සමඟ ආරම්භ කරන ලද පූර්ණ සංඛ්‍යා දෙකක ගෝලීය විකෘති ශ්‍රේණියක් ලබා දෙනු ඇත .

දිග 15 ස්නිපටය

const long k=7;

මෙම constspecifer C ++ ලබා ගත් ණය සී කිරීමට පසුව ඊට අමතරව ය. පොදු සම්මුඛ පරීක්ෂණ ප්‍රශ්නයක් නම් "විචල්‍යයක් ලෙස අර්ථ දැක්වීම අර්ථවත්ද volatile const?". constසමග enumසහ inlineමත රඳා පැවැත්ම අඩු කිරීම ය #defineආකාරයේ ආරක්ෂක ගැටලු ඇති.

දිග 16 ස්නිපටය

extern void **q;

externවිචල්‍යයක් වෙනත් තැනක ප්‍රකාශයට පත් කර ඇති බව දැක්වීමට භාවිතා කරයි. මෙම void *වර්ගය තේරුම පැහැදිලිව ම පැවරුම ප්රකාශ සිට හෝ නිශ්පාදන ප්රකාශ කළ යුතු නොවේ, සී සම්මත Generic බලපත්රය යටතේ අවසර ලබා ඇත වර්ගය වේ. මෙම **බොහෝ විට අවස්තා වලදි සිත් හමා, නමුත් හොඳින් වලංගු වන අතර බොහෝ විට සී භාවිතා වන පහිටුම් දක්වනය, ක්රියාකරු අනුක්රමය මාර්ගයෙන් පහිටුම් දක්වනය

දිග 17 ස්නිපටය

double d=4/3-1/3;

ඔබ ඉහත මුද්‍රණය කළහොත් එහි ප්‍රති result ලය එකක් වනු ඇති අතර ඔබ සිතන්නේ සුපිරි! වෙනස් කරන්න double d=4/3-2/3;සහ පිළිතුර කුමක්ද? එය තවමත් එකකි! C යනු 4/3 → 1 සහ 2/3 → 0 සහ 1 - 0 → 1 ගණනය කිරීම සඳහා පූර්ණ සංඛ්‍යා අංක ගණිතය භාවිතා කරයි!

දිග 18 ස්නිපටය

main(){puts("!");}

අවසාන වශයෙන් අපි ඇත්ත වශයෙන්ම යමක් කරන කේතයකට පිවිසෙමු! putsසී ගොල්ෆ් ක්‍රීඩකයින්ගේ ප්‍රියතම එකක් වන්නේ එයට ශීර්ෂ ගොනුවක් භාවිතා කිරීමට අවශ්‍ය නොවන බැවිනි.

putsප්‍රතිදානය සඳහා රේඛීය සංග්‍රහයක් ද එක් කරයි. අනෙක් අතට, එහි සහකරු getsරේඛීය සංග්‍රහ ඉවත් කරයි. getsඉතා පාලිත තත්වයන් හැර කිසිවෙකු කිසි විටෙකත් භාවිතා නොකළ යුතුය - එයට බෆරය ඉක්මවා යාම සඳහා ආරක්ෂාවක් නොමැති අතර බොහෝ සූරාකෑමට මූලික හේතුව එයයි.

දිග 19 ස්නිපටය

#include <stdlib.h>

ශීර්ෂ ලිපිගොනු ඇතුළත් කිරීම බොහෝ විට සංවර්ධකයින්ගේ පුද්ගලික අත්සනකි. බොහෝ ඇතුළත් libහා ioඔවුන් අවශ්ය නම් නොතකා. සමහරක් ශීර්ෂ ලිපිගොනු ඇණවුම් කරන බැවින් දිග වැඩි වේ හෝ අඩු වේ. බොහෝ දමා <>පෙර "". ශිෂ්‍යයන් අතර වංචා කිරීම පරීක්ෂා කිරීම සඳහා පුද්ගලිකව මම මෙම අත්සන මගේ ටීඒ දිනවල භාවිතා කර ඇත: එකම ශීර්ෂ අත්සනද? සමීපව බලන්න!

දිග 20 ස්නිපටය

char*p=(char*)0x300;

සී නිර්මාණය කර ඇත්තේ ඉතා පහත් මට්ටමේ මුල් වේදිකාවල භාවිතා කිරීමට ය. සමහර අවස්ථාවලදී ඔබට විශේෂ මතක සිතියම්ගත කළ වරායන් වෙත කෙලින්ම පිවිසීමට අවශ්‍ය විය හැකිය.

වරාය ලිපිනය ඉහත කේතය ඔබ දැන් භාවිතා විසින් වරාය වටිනාකම ප්රවේශ වනු ඇත ෂඩ් දශම 300. වන පරිදි අර්ථ දක්වා ඇත *pදී මෙන්, *p=0xff;සියලු බිටු හැරී, හෝ v=*p;වත්මන් වටිනාකම ලබා ගැනීමට.

දිග 21 ස්නිපටය

int w=sizeof(double);

මෙම sizeofක්රියාකරු වර්ගයේ බයිට් වලින් විශාලත්වය සපයයි. විචල්ය නම් සමඟ වරහන් අවශ්ය නොවේ double d;int w=sizeof d;.

දිග 22 ස්නිපටය

asm("xorl %ecx,%ecx");

භාවිතා කරන්නේ කෙසේද asmයන්න සම්පාදකයා විසින් අර්ථ දක්වා ඇත. ඉහත දැක්වෙන්නේ ඉන්ටෙල් වේදිකාවක ලිනක්ස් ජීසීසී පේළි කේතයට උදාහරණයකි.

මුල් යුනික්ස් එකලස් කිරීමේ දී එහි කේතයේ කුඩා නමුත් නොසැලකිලිමත් නොවන කොටසක් තිබුණි. අද පවා, වේගය මූලික වශයෙන් සැලකිලිමත් වන්නේ නම් සහ අතේ ගෙන යා හැකි බව නියත වශයෙන්ම නොවේ නම්, එය භාවිතා වන බව ඔබට පෙනෙනු ඇත.

අනුකූල පද්ධති මත, ඉහත කේතය සම්පාදනය කරනු ඇති අතර, එය වචනයේ පරිසමාප්ත අර්ථයෙන්ම හුදකලා එකලස් කිරීමේ උපදෙස් වනු ඇත. BTW xor R,Rයනු ලේඛනයක් ඉක්මනින් ඉවත් කිරීම සඳහා පොදු එකලස් කිරීමේ භාෂාවකි.

දිග 23 ස්නිපටය

union u{char c;int i;};

A unionවිශාලතම මූලද්‍රව්‍යය සඳහා අවම වශයෙන් ප්‍රමාණවත් ඉඩක් ලබා දෙනු ඇත. void *සමහර පුස්තකාලවල පොදු “පාරාන්ධ” වර්ගයක් සැපයීම සඳහා එය භාවිතා කරන බව ඔබට පෙනෙනු ඇත. මෙම අවස්ථාවෙහිදී, සමිතිය සාමාන්‍යයෙන් විශාල ව්‍යුහයක කොටසක් වනු ඇති අතර ව්‍යුහයට වෘත්තීය සමිති වර්ගය හඳුනා ගැනීමට ක්ෂේත්‍රයක් ඇත.

දිග 24 ස්නිපටය

/*INTS*/int i,j,k;//INTS

මුල් C විවරණය ලෙස වෙන් කර ඇති අතර /* comment */, // comment to end of lineC ++ වෙතින් ආකෘතිය ලබා ගත්තේය.

දිග 25 ස්නිපටය

int main(void){return 1;}

ඉහත 8 දිග ස්නිපටයේ වඩාත් අනුකූල අනුවාදය මෙයයි. ආපසු පැමිණීමේ වර්ගය සහ ක්‍රියාකාරී වර්ග නියම කර ඇති අතර, එය පැහැදිලිවම ආපසු ලබා දුන් අගයක් ඇත.

සී හි සම්මුතිය යනු 0සාර්ථකත්වය සහ 1අසාර්ථකත්වය සඳහා ප්‍රතිලාභ අගයක් භාවිතා කිරීමයි , නැතහොත් ඔබට තදින් අනුකූල වීමට EXIT_SUCCESSසහ EXIT_FAILUREඅර්ථ දක්වා ඇති පරිදි stdlib.h.

දිග 26 ස්නිපටය

typedef struct{int x,y;}P;

typedefඅතිශයින්ම ප්‍රයෝජනවත් වේ, විශේෂයෙන් typedef struct. නූතන අර්ථයෙන් ඔබට එය "වස්තු-දිශානතිය-ආලෝකය" ලෙස හැඳින්විය හැකිය.

ඉහත සඳහන් දෑ ඇතුළත් කිරීමෙන් පසුව, කේතයට Pපූර්ණ වර්ගීකරණ පිරික්සුමක් සහිතව ප්‍රකාශන සහ ක්‍රියාකාරකම් වල සාමාන්‍ය වර්ගයක් ලෙස භාවිතා කළ හැකිය . C ++ මෙන් නොව, ඔබට +, *, හෝ << වැනි ක්‍රියාකරුවන් අර්ථ දැක්විය නොහැක, එබැවින් “වස්තු-දිශානතිය-ආලෝකය”.

දිග 27 ස්නිපටය

#define C(x,y)(((x)+1)*(y))

සී පහසු සාර්ව #defineසින්ටැක්ස් ඇත.

පොදු නවක දෝෂයක් නම් අභ්‍යන්තර සහ / හෝ පිටත වරහන් මඟ හැරීමයි.

දිග 28 ස්නිපටය

struct f{int s:1,e:8,m:23;};

C ට ඕනෑම පූර්ණ සංඛ්‍යාවක් මෙන් පැවරිය හැකි සහ කියවිය හැකි හා හැසිරවිය හැකි බිට්-ක්ෂේත්‍ර පැහැදිලිව නිර්වචනය කළ හැකිය.

ඉහත දැක්වෙන්නේ IEEE තනි පළල පාවෙන ලක්ෂ්‍ය දත්ත ව්‍යුහයක දළ විශ්ලේෂණයකි.

දිග 36 ස්නිපටය

f(unsigned x){return!!x&!(x&(x-1));}

බොහෝ භාෂාවලින්, සංඛ්‍යා නිරූපණය කරන්නේ කෙසේද යන්න ගැන ඔබ සැලකිලිමත් විය යුතු නැත. සී හි, ඔබ ඔවුන්ගේ අභ්‍යන්තර නිරූපණය පිළිබඳව සමීපව දැන සිටිය යුතුය.

මට සිතිය හැකි හොඳම උදාහරණය නම් පූර්ණ සංඛ්‍යාවක් {1, 2, 4, 8, ... of දෙකක බලයක්ද යන්න තීරණය කිරීමයි. C ගැන හුරු නැති අය O (ලොග් (n)) ධාවන කාලය සඳහා ලූප සහ මාරුවීම් සහ සියලු ආකාරයේ දේවල් කරනු ඇත, නරක නැත, නමුත් ඉහත දැක්වෙන්නේ O (1) ධාවන වේලාවේදී සිදු කරන ශ්‍රිතයකි. පා work කයාට එය ක්‍රියාත්මක වන බව සනාථ කිරීම සඳහා මම එය අභ්‍යාසයක් ලෙස තබමි, නමුත් එය සැබවින්ම ...

මෙම !!සමුළුව බොහෝ විට පිළිවෙළින් ශූන්ය නොවන හා ශුන්ය සිට 1 සහ 0 යනු පූර්ණ සංඛ්යාවකි, බිය වද්දන කිරීමට භාවිතා කරයි. බොහෝ සී සංවර්ධකයින් මේ ආකාරයේ උපක්‍රම භාවිතා කිරීමට කැමතියි (බොහෝ විට කේත පැහැදිලිකම අගය කරන අයට වඩා වෙනස්).

සුපිරි උනන්දුවක් දක්වන සී සංවර්ධකයින්ට ඉහත සඳහන් දෑ අනුපූරක සහ අත්සන් කළ දෘඩාංග මත ක්‍රියාත්මක වන බව සනාථ කළ හැකිය. පුදුම වන අය සඳහා, ඔබ මේ වන විට ද්වි-අනුපූරක දෘඩාංග මත වැඩ කරන බව විශ්වාසයි. මේ ගැන කරදර විය යුත්තේ සැබවින්ම වාසනාවන්ත (හෝ ඔබේ ඉදිරිදර්ශනය අනුව අවාසනාවන්ත) පමණි!

දිග 48 ස්නිපටය

#include<complex.h>
double complex c=3.0+I*4.0;

C99 ට සංකීර්ණ අංක සඳහා සහාය ඇතුළත් වේ. කේතයෙන් ඔබට පෙනෙන පරිදි, එය සැබෑ වර්ගයක් සඳහා විකරණකාරකයේ ස්වරූපය ගනී. ඔබට භාවිතා කළ හැකි int complex c=3+I*4;නමුත් අභ්‍යන්තරව එය පාවෙන ලක්ෂ්‍ය වර්ගයකට බල කරයි. ඉහත කේතය gcc භාවිතයෙන් සම්පාදනය කෙරේ gcc -std=c99 -c length-48.c.

ඔබට තවත් අභ්‍යන්තරයන් දැකීමට අවශ්‍ය නම්, -E ස්විචය සමඟ සම්පාදනය කිරීමට උත්සාහ කරන්න. මගේ gcc අනුවාදය සඳහා, ඉහත ප්‍රකාශය බවට පත්වේ double _Complex c=3.0+(__extension__ 1.0iF)*4.0;. සංකීර්ණ වර්ගය ලාභ සාර්ව කිහිපයක් පමණක් නොව භාෂාවට සැලකිය යුතු එකතු කිරීමක් බව සලකන්න.

මෙය හුදෙක් තේමා පටයක් පමණි, අපට අක්ෂර 125 ට වඩා වැඩි වූ විට, අපට සංකීර්ණ සංඛ්‍යා සමඟ සැබෑ විනෝදයක් ආරම්භ කළ හැකිය!

දිග 51 ස්නිපටය

#include <math.h>
main(){double d=sqrt(sin(3.2));}

විවිධ හේතූන් මත, සී ස්වයංක්‍රීයව පාපය, කොස්, ටැන්, වර්ග වැනි සම්මත ගණිතමය ශ්‍රිත සමඟ සම්බන්ධ නොවේ. එබැවින් ඒවා භාවිතා කර ඇති නමුත් සම්බන්ධ නොවන්නේ නම්, සංවර්ධකයාට සම්බන්ධක දෝෂය නිර්වචනය නොකෙරේ . 'sqrt' හෝ වෙනත් දෝෂයකි.

Gcc හි, ඉහත කේතය සම්පාදනය කර භාවිතයෙන් සම්බන්ධ gcc length-51.c -lmවේ.

සටහන sin(3.2)a ණ සංඛ්‍යාවක් නැවත ලබා දෙනු ඇත, එයින් වර්ග මූලය සැබෑ වසමේ නීත්‍යානුකූල නොවේ. C හි, NaNමෙම දෝෂය දැක්වීමට විශේෂ අගයක් ලබා දෙනු ලැබේ, එය වැඩසටහන නොසලකා හැරීමට නිදහස ඇත!

C99 හි, කිසිවෙකු භාවිතා නොකරන මේ ආකාරයේ ගණිත දෝෂයන් සඳහා ඉතා ආරක්‍ෂිත හා මනාව පාලනය කළ හැකි නව ව්‍යතිරේක හැසිරවීමේ කාර්යයන් රාශියක් ඇත!

දිග 63 ස්නිපටය

static int w;static int X(int x){static int s=0;s^=x;return s;}

හෝ වඩාත් සූක්ෂම ලෙස සංයුති කර ඇත:

static int w;
static int X(int x)
{
    static int s=7;
    s^=x;
    return s;
}

ඔබ අනුමාන කළ පරිදි, මේ සියල්ල staticසී හි එක් අර්ථයකට වඩා ඇති මූල පදය ගැන ය.

පළමු අවස්ථා දෙකේදී, staticසම්පාදකයාට කියන්නේ මෙම ගොනුව හෝ සම්පාදන ඒකකයෙන් පිටත පූර්ණ සංඛ්‍යා wහා ක්‍රියාකාරිත්වය Xනොපෙනෙන බවයි, එනම් ඒවා අභ්‍යන්තරය.

මෙම කාර්යයන් බාහිරව හැඳින්වීමට අදහස් නොකෙරේ, එබැවින් ඒවා වලංගුභාවය සඳහා වන තර්ක පරික්ෂා නොකර වෙනත් කොන් කපා දමනු ඇත. ඔවුන් අභ්යන්තර විෂය පථය නිසා, ඔබ දක්වන ලෙසට කළ හැකි wසහ Xවෙනත් ගොනු, සහ ඔවුන් සාමාන්යයෙන් වෙන වෙනම වනු ඇත.

අන්තිම අවස්ථාවෙහිදී, staticපූර්ණ සංඛ්‍යා sශ්‍රිත ඇමතුම් අතර එහි අගය රඳවා ගන්නා බව පෙන්නුම් කරයි . පළමු වරට Xකැඳවනු sලැබේ, එහි ආරම්භක අගය වනු ඇත 7, එය අනන්‍ය වූ විට xහෝ නව කළ විට නව අගය රඳවා ගනු ඇත.

අභ්‍යන්තරව, එය ක්‍රියාත්මක කිරීම මත රඳා පැවතුනද, සුපුරුදු මතක සංවිධානය sයනු ගොඩවල් මත xවාසය කිරීමයි. ඔබට පුනරාවර්තන ඇල්ගොරිතම ක්‍රියාත්මක කිරීමට අවශ්‍ය නම් විචල්‍යයන් වාසය කරන ස්ථානය වැදගත් වේ.

C හි ගොචා යනු ගෝලීය විචල්‍යයන් සමඟ ගැටුම් වේ. දක්වා wසහ Xඇත්තටම ලෙස අර්ථ නිරූපනය කර ඇත staticඑවිට, ඔවුන් ගෝලීය කොහේ හරි අර්ථ නිරූපනය කර ඇත නම්, wහා Xඒ වෙනුවට ගෝලීය ආයතන වෙත යොමු කරනු ඇත.

ගෝලීය අගයක් සැකසීමට භාවිතා කරන බැවින් මෙහි qසහ wඑකම අගයට ආරම්භ නොකරනු ඇත :wq

static int q = w;
static int w;

ගෝලීය wපැවැත්මක් නොමැති නම්, සම්පාදනය අසමත් විය යුතුය.

මෙන්න qසහ wඑකම අගයට ආරම්භ කරනු ලැබේ:

static int w;
static int q = w;

සාමාන්‍යයෙන්, නිර්මාණකරුවන් ඔවුන්ගේ ගෝලීය විචල්‍යයන් හා ක්‍රියාකාරකම් සඳහා සුවිශේෂී උපසර්ගයක් හෝ උපසර්ගයක් එක් කිරීමෙන් නාම ගැටුම් අවම කරනු ඇත.

C99 හි, staticතවත් භාවිතයක් ලබා ගෙන ඇත, උදා: int Y(int a[static 10]);එයින් අදහස් වන්නේ අවම වශයෙන් නිඛිල 10 Yක පරාසයක් ගන්නා ශ්‍රිතයක් ඇති බවයි.

දිග 74 ස්නිපටය

void f(register int*p,register int*q,register int l){while(l--)*p++=*q++;}

නැතහොත් මනාව සකසා ඇත:

void f(register int *p, register int *q, register int l)
{
    while (l--)
        *p++ = *q++;
}

බලන්නකෝ registerදෘඩාංග ලේඛන භාවිතා කර ප්රයෝජනවත් වනු ඇති බව සම්පාදකවරයා ඉඟියක් සපයයි. ඉහත කාර්යය පිටපත් කරනු lසිට නිඛිල qසඳහා pහැකි නම් දෘඩාංග ලේඛන භාවිතා.

සමහර විට වේගවත් කිරීම් සැලකිය යුතු ය. උදාහරණයක් ලෙස, 68K මයික්‍රොප්‍රොසෙසර් පවුල තුළ, ඔබ භාවිතා නොකළේ නම් හය හෝ අටට එදිරිව *p++ = *q++තනි උපදෙස් වලට රේඛාව පරිවර්තනය කළ හැකිය . මෙම 68K ප්රොසෙසරය ඔහු වේදිකාව දැනගෙන සිටියා නම්, ඒ නිසා රස විඳින්නන් සංවර්ධක, පැහැදිලි පශ්චාත් නොවීම් හා පූර්ව-අඩු කිරීම් මාතයන් තිබුණා, භාවිතා බව ගැලපෙන කේතය හා එදිරිව හා .MOVE.W (Ap)+,(Aq)+registerx++--y++xy--

මේ දිනවල සම්පාදකයින් බොහෝ විට නොසලකා හරිනුයේ register, ලිපින ලබා ගැනීමට ඉඩ නොදීම හැර (උදා: ඉහත සඳහන් &lකළ පරිදි සම්පාදක දෝෂයක් ඇති වේ).

දිග 88 ස්නිපටය

#include<stdio.h>
int f(int x){return(x>1)?x*f(x-1):1;}int main(){printf("%d\n",f(12));}

හෝ සනීපාරක්ෂක පිරිසැලසුමක් සහිතව:

#include <stdio.h>

int f(int x)
{
    return (x > 1)? x * f(x - 1): 1;
}

int main()
{
    printf("%d\n", f(12));
}

ආහ්, පුනරාවර්තනය! ස්නිපටය සම්පාදනය කිරීම, සම්බන්ධ කිරීම සහ ක්‍රියාත්මක කිරීම සඳහා වූ සම්පූර්ණ වැඩසටහනකි. පුනරාවර්තන සූත්‍රය f (x) = x * f (x - 1) භාවිතා කිරීමෙන් ශ්‍රිතය fඑහි තර්කයේ සාධකය ගණනය කරයි x. සාධකයන් ඉතා ඉක්මණින් විශාල වේ, එබැවින් උදාහරණයක් ලෙස f(12)අත්සන් කළ 32-බිටු නිඛිලයකින් ඔබට ලබා ගත හැකි විශාලතම අගය වේ.

සැබවින්ම පුනරාවර්තන කේතයේ උදාහරණයක් සඳහා, ඇකර්මන් ශ්‍රිතයේ බොළඳ ක්‍රියාත්මක කිරීම් පිළිබඳව සොයා බලන්න .

ස්මාර්ට් සම්පාදකයින්ට ශ්‍රිතය ප්‍රශස්තිකරණය කළ හැකි අතර, ඉඟිය භාවිතා කර inlineනියතයන් තර්ක ලෙස සපයන විට ශ්‍රිතය “ඉවත් කරන්න”:

f(12)

බවට පත්වේ:

12 * 11 * 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1

කිසිදු ක්‍රියාකාරී ඇමතුමක් නොමැතිව!

වෙනත් සම්පාදකයින්ට ශ්‍රිතය ප්‍රතිසංවිධානය කළ හැකිය:

int f(int x)
{
    return (x < 2)? 1: f(x - 1);
}

වලිගය පුනරාවර්තනය යනුවෙන් හැඳින්වෙන දෙයක් ක්‍රියාත්මක කරන්න. මෙය අවසාන ශ්‍රිත ඇමතුම සරල ගොටෝවකට ප්‍රතිස්ථාපනය කර නැවත පැමිණීම සමඟ කටයුතු කිරීමට ඉඩ දෙයි. වාසිය වන්නේ අඩු සිරස් තෙරපීම, වේගවත් හා කුඩා කේතයකි.

එකලස් කිරීමේ භාෂාවෙන්, මෙම ආකාරයේ ප්‍රශස්තිකරණ අවස්ථාවන් සැබවින්ම හඳුනා ගැනීම පහසු වන අතර එය "කීහෝල් ප්‍රශස්තකරණය" යනුවෙන් හැඳින්වෙන දෙයක් මඟින් ක්‍රියාත්මක කළ හැකිය, එය මූලික වශයෙන් කුඩා රටා සොයන අතර ඒවා වේගවත් හා / හෝ කුඩා යමක් මගින් ප්‍රතිස්ථාපනය කරයි.

දිග 117 ස්නිපටය

#include<stdio.h>
int main(int c,char**v){int a,b;sscanf(v[1],"%d%*[\t ,]%d",&a,&b);printf("%d\t%d\n",a,b);return 0;}

හෝ:

#include <stdio.h>

int main(int c, char **v)
{
    int a, b;

    sscanf(v[1], "%d%*[\t ,]%d", &a, &b);
    printf("%d\t%d\n", a, b);

    return 0;
}

C එකල සමකාලීන භාෂාවලින් ණයට ගත් අතර, ඕනෑම උපාංගයකට කොන්සෝලය, පන්ච් කාඩ්, ටේප්, ඩිස්ක් හෝ මුද්‍රණ යන්ත්‍රය නිරන්තරයෙන් යෙදිය හැකි විශ්වීය I / O සංකල්පය, නමුත් සත්‍ය සී ස්වරූපයෙන් එය සංවර්ධකයාට නිර්මාණය කිරීමට ඉඩ ලබා දුන්නේය. ඉතා දැඩි නමුත් ප්‍රබල ප්‍රකාශ.

ඉහත ස්නිපටයේ, එය විධාන රේඛා ආදානය ගෙන, අවකාශ, ටැබ් හෝ කොමාව මගින් වෙන් කරන ලද පූර්ණ සංඛ්‍යා දෙකක් විග්‍රහ කර ඒවා ප්‍රතිදානය කරයි. එය නව scanfපිරිවිතරයක වාසිය ලබා ගනී %*[\t ,]: [\t ,]සියලු ටැබ්, අවකාශ සහ කොමාව ඉවත් කර, සහ: *ඒවා නොසලකා හරින්න.

මම සංවර්ධක සමග "පවිත්ර" C ++ මාර්ගය සියල්ල සිදු කරමින් සිටි සමහර C ++ කේතය සංශෝධනය මතක <<හා සමාන ක්රම ක අවි ගබඩාව findහා substr. එය අවම වශයෙන් පේළි දුසිමක්වත් වූ අතර එයට තවමත් කොමාව පරිසීමක ලෙස හැසිරවිය නොහැක. මම ඒ හැම කේතයක්ම sscanfඉහත පේළිය වෙනුවට ආදේශ කළා !

දිග 132 ස්නිපටය

#include<stdio.h>
int main(int c,char**v){while(--c){++v;printf("|%s|\n|%5s|\n|%-5s|\n|%.5s|\n|%5.5s|\n",*v,*v,*v,*v,*v);}return 0;}

හෝ:

#include <stdio.h>

int main(int c, char **v)
{
    while (--c)
    {
        ++v;
        printf("|%s|\n|%5s|\n|%-5s|\n|%.5s|\n|%5.5s|\n", *v, *v, *v, *v, *v);
    }

    return 0;
}

කාර්යයන් printf, sprintf, fprintfආදිය ප්රතිදානය, පළල සහ පුරවන නිර්වචනය කිරීමට ආකෘතිය නිශ්චයකක් භාවිතා කරන්න.

විවිධ ප්‍රතිදානයන් බැලීමට විධාන රේඛා තර්ක භාවිතා කරමින් ඉහත සඳහන් දෑ සම්පාදනය කර ක්‍රියාත්මක කරන්න:

> main xyz 123456
|xyz|                                                                                                                                                
|  xyz|                                                                                                                                              
|xyz  |                                                                                                                                              
|xyz|                                                                                                                                                
|  xyz|                                                                                                                                 
|123456|                                                                                                                                             
|123456|                                                                                                                                             
|123456|                                                                                                                                             
|12345|                                                                                                                                              
|12345| 

මෙම සටහන .5මෙම විශේෂණයක් ප්රතිදානය හි සීමා බොහෝ ප්රධාන අතර, චරිත පහක් 5වගකීම ප්රතිදානය පවතී අවම වශයෙන් සමඟ, චරිත පහක් -වම් කඳවුරු ගතවීම පෙන්නුම්. ඒවා ඒකාබද්ධ කිරීමෙන් ප්‍රතිදානය හරියටම අක්ෂර පහකට සකසයි.


4
සෑම උඩු යටිකුරු කිරීමකටම නව ෆැක්ටෝයිඩ් එකතු කිරීමේ අවශ්‍යතාවයක් ඇතැයි මම නොසිතමි :)
Optimizer

29
සී හි පොදු සංස්කෘතියක් වන්නේ සම්පාදක අනතුරු ඇඟවීම් නොසලකා හැරීමයි , මෙය සත්‍යයට ආසන්න තැනක් යැයි මම නොසිතමි!
ෂාබාස්

4
ඔබට විශාල ව්‍යාපෘතියක් තිබේ නම් සහ බහු සම්පාදකයින් සලකා බලන්නේ නම්, සියලු අනතුරු ඇඟවීම් ඉවත් කිරීමට උත්සාහ කිරීම නිෂ් le ල විය හැකිය.
feersum

5
මෙය විශිෂ්ටයි
කික්

4
මම සී ක්‍රමලේඛකයෙක් වන අතර මම හැස්කෙල්ට බිය නොවෙමි.
ෂාබාස්

138

x86 යන්ත්‍ර කේතය

ෆැක්ටොයිඩ්:

x86 යන්ත්‍ර කේතය යනු ප්‍රොසෙසරය සැබවින්ම ක්‍රියාත්මක වන x86 එකලස් කිරීමේ එකලස් කරන ලද අනුවාදයයි. මතක හා ගබඩා පහසුකම් මිල අධික වූ විට එය සංවර්ධිත නැවත වූ අතර, තරමක් ආපස්සට අනුකූල ක්රියාත්මක කේතය කුඩා සාධක ඉන්ටෙල් 8008. කිරීමට සියලු ආකාරයෙන් නිර්මාණය වී ඇති අරමුණු එක් වූ අතර, එය විචල්ය දිග උපදෙස් හා උපයෝගී CISC ගෘහ නිර්මාණ ශිල්පය උදව් කිරීමට මෙය සාක්ෂාත් කර ගන්න (නවීන ප්‍රොසෙසර වල ක්‍රියාකාරීත්වය වැඩි දියුණු කිරීම වඩාත් සංකීර්ණ කිරීමේ අඩුපාඩුවක් ඇති). මෙය එකලස් කිරීමේ සහ සාමාන්‍යයෙන් යන්ත්‍ර කේතයේ හිස් අස්ථි ස්වභාවය සමඟ x86 වැඩසටහන් අතිශයින් සංයුක්ත වීමට හැකියාව ලබා දෙයි.

දිග 1:

දැන් පළමු වැඩසටහන සඳහා:

0xC3

හෙක්ස් සංස්කාරකයක් විවෘත කර, එම බයිටය ඇතුළත් කර එය test.com ලෙස සුරකින්න.

ඔබට දැන් වලංගු MS-DOS වැඩසටහනක් ඇති අතර එය කිසිවක් නොකර වහාම ආපසු එනු ඇත, මන්ද 0xC3 යනු 'RET' උපදෙස් වේ. කෙසේ වෙතත් මෙය x86 සමඟ ගොල්ෆ් ක්‍රීඩාව සඳහා තවත් රසවත් අංගයක් පෙන්වයි: .com ගොනු ආකෘතිය. මෙම ක්‍රියාත්මක කළ හැකි ආකෘතියට කිසිසේත්ම ශීර්ෂයක් නොමැත - ගොනුව හුදෙක් 0x100 ලිපිනයෙන් ආරම්භ වන මතකයට පටවනු ලැබේ, පසුව ක්‍රියාත්මක කිරීම 0x100 සිට ආරම්භ වේ. මෙයින් අදහස් කරන්නේ පාර-දත්ත සඳහා බයිට් නාස්ති නොවන බවයි!

දිග 2:

අපගේ ඊළඟ වැඩසටහන:

0x4D 0x5A

හෝ ASCII හි 'MZ'.

හරි, මම ටිකක් වංචා කළා, එය ඇත්තෙන්ම ප්‍රයෝජනවත් වැඩසටහනක් නොවේ, මන්ද එය උපදෙස් වලට අනුරූප වේ

DEC     BP
POP     DX

.Com වැඩසටහනක් ආරම්භ කිරීම සඳහා ඇත්ත වශයෙන්ම ප්‍රයෝජනවත් නොවේ. ඇත්ත වශයෙන්ම, එම අගයන් දෙකේ සමස්ත කාරණය එයයි - සාධාරණ .com ගොනුවක් ඒවා සමඟ ආරම්භ නොවිය යුතුය! .com ලිපිගොනු ප්‍රමාණයෙන් බයිට් 65280 කට (64KiB - 0x100) සීමා කරන ලදි, එබැවින් විශාල වැඩසටහන් අවශ්‍ය වූ විට නව ආකෘතියක් සංවර්ධනය කිරීමට සිදුවිය. මෙය ශීර්ෂයක් සහිත .exe ගොනු ආකෘතිය විය. කෙසේ වෙතත්, පසුගාමී අනුකූලතාව සඳහා .com දිගුව ඇතැම් සංරචක මත තබා ගැනීමට MS-DOS අවශ්‍ය විය, එබැවින් .com ගොනුවක් සැබවින්ම .exe ද යන්න සොයා ගැනීමට ක්‍රමයක් අවශ්‍ය විය. ඔවුන් මෙම මැජික් අංකය ලෙස 'MZ' යන ද ing ුවම තෝරා ගත් අතර අද දක්වාම ඔබ වින්ඩෝස් .exe (හෝ .dll) ගොනුවක් හෙක්ස් සංස්කාරකයක විවෘත කරන්නේ නම්, ඒවා එම බයිට් දෙකෙන් ආරම්භ වන බව ඔබට පෙනෙනු ඇත. නවීන වින්ඩෝස් වැඩසටහන පවා 70 දශකයේ සිට අනුකූලතා අවහිරයකින් ආරම්භ වීම මට සතුටකි.

දිග 3:

දැන් අසීමිත පුඩුවක් සඳහා:

41 E2 FD

එය පරිවර්තනය කරයි

start:
inc cx
loop start 

මෙම වැඩසටහන CX හි අගය වැඩි කරයි (එය ආරම්භ කිරීමට> 0 වනු ඇත), පසුව ලූප් උපදෙස් ක්‍රියාත්මක කරයි. සරල මෙහෙයුම් 3 ක් එක් විශේෂ කාර්ය මෙහෙයුමකට ඒකාබද්ධ කරන බැවින් ලූප් සීඅයිඑස්සී උපදෙස් සඳහා කදිම නිදසුනකි: එය සීඑක්ස් හි අගය අඩු කරයි, එය 0 දැයි පරීක්ෂා කරයි, නැතිනම් ඉලක්ක ලේබලය වෙතට පනින්න. සීඑක්ස් 0 වන විට අවසන් වීමට අමතරව වෙනත් කොඩි පරීක්ෂා කරන ලූප ආකාර ද ඇත. අපට බයිට් 2 ක අනන්ත පුඩුවක් සඳහා 'ජම්ප් ස්ටාර්ට්' කළ හැකි නමුත් මෙය වඩාත් සිත්ගන්නා සුළු විය.

දිග 4:

අවම වශයෙන් ප්‍රයෝජනවත් වන වැඩසටහනක්:

40 CD 10 C3

එකලස් කිරීමට පරිවර්තනය කර ඇත:

inc ax    ; 1 byte
int 10h   ; 2 bytes
ret       ; 1 byte

මෙම වැඩසටහන මඟින් කොන්සෝලය අක්ෂර 40x25 ක් ලෙස සකසා තිරය හිස් කර විධාන රේඛාවට නැවත පැමිණේ. අපට අවශ්‍ය වීඩියෝ මාදිලියට AX සකසා ඇත (1), පසුව BIOS බාධා 10h නැවත කැඳවීමට පෙර වීඩියෝ ප්‍රකාරය සැකසීමට සහ කවුළුව හිස් කිරීමට කැඳවනු ලැබේ. අනාගතයේදී මෙම BIOS බාධා කිරීම් බොහොමයක් දැකීමට බලාපොරොත්තු වන්න.

දිග 5:

අපට දැන් විරාම වැඩසටහනක් ක්‍රියාත්මක කළ හැකිය:

B4 01 CD 21 C3

එකලස් කිරීමට පරිවර්තනය කර ඇත:

mov ah,1  ; 2 bytes
int 21h   ; 2 bytes
ret       ; 1 byte

මෙම වැඩසටහන BIOS ට යතුරක් එබෙන තෙක් බලා සිටින ලෙස පවසන අතර නැවත පැමිණීමට පෙර එය තිරයට දෝංකාර දෙයි. X86 හි සමහර ලේඛණ අර්ධ වශයෙන් කියවීමට හෝ ලිවීමට හැකි ආකාරය ද මෙයින් පෙන්නුම් කෙරේ. මෙම අවස්ථාවේදී, අපි AX (AH) හි ඉහළ බයිට් 1 ට සකසා ඇත. බිට් 32 ප්‍රොසෙසරයක, ඔබට ඉහළ බිටු 16 ට බලපෑමක් නොකර අඩු බිටු 16 මත ක්‍රියා කළ හැකිය. අර්ධ ලේඛන වෙනස් කිරීමට හැකියාව එකලස් කිරීම සදහා ප්රයෝජනවත් විය, නමුත් ඉටු කිරීමට උත්සාහ නවීන සකසුවන් සඳහා අවාසි ඇත හැකි යල්-පිණිස ක්රියාත්මක ඔවුන් බොරු දත්ත පරායත්තතාවය හඳුන්වා හැකි බැවින්,.

දිග 9:

දැන් ඇත්ත වශයෙන්ම ප්‍රතිදානය පෙන්වීමට:

68 00 B7 07 AB 40 79 FC C3

එකලස් කිරීමට පරිවර්තනය කර ඇත:

; These two instructions set up ES, the 'extra segment'
push 0xb700 ; 3 bytes
pop  es     ; 1 byte
label:
stosw       ; 1 byte, Store Word - Copy AX to [ES:DI] then add 2 to DI
inc  ax     ; 1 byte
jns  label  ; 2 bytes, Jump Not Signed - Jump unless the sign flag is set (when inc AX yields 0x8000
ret         ; 1 byte

ප්‍රතිදානය යනු විවිධ වර්ණවලින් පුනරාවර්තනය වන පෙරනිමි අක්‍ෂර කට්ටලයයි. AX හි අඩු බයිට් අක්ෂර කේතය වන අතර ඉහළ බයිට් භාවිතා කිරීමට වර්ණ නියම කරයි. පෙරනිමි අක්ෂර කට්ටලය විවිධ වර්ණවලින් පුනරාවර්තනය වේ

බිට් 16 වැඩසටහන් වලට කෙලින්ම ආමන්ත්‍රණය කළ හැක්කේ 64KiB දක්වා පමණි. මෙය මඟහරවා ගැනීම සඳහා, x86 භාවිතා කරන ලද 'කොටස්' - විශේෂ ලේඛණ 16 කින් ගුණ කර සියලු මතක ප්‍රවේශයන්ට එකතු කර බිටු 20 ක් ආමන්ත්‍රණය කළ හැකි මතකයක් ලබා දේ. වැඩිපුර මතකයකට හෝ විශේෂ මතක ප්‍රදේශවලට ප්‍රවේශ වීම සඳහා වැඩසටහනකට මෙම කොටස් ලේඛනයේ අගයන් වෙනස් කළ හැකිය: වීඩියෝ මතකයට ලිවීම සඳහා මෙම වැඩසටහන අතිරේක කොටස වෙනස් කරයි. විවිධ වර්ගයේ මතක ප්‍රවේශයන් විවිධ කොටස් රෙජිස්ටර් භාවිතා කළ අතර, කේතය, දත්ත සහ තොගය එකවර විවිධ මතක කොටස් වලට ප්‍රවේශ විය හැක. බොහෝ උපදෙස් සඳහා පෙරනිමි කොටස ද අභිබවා යා හැකිය.

දිග 20:

හඳුනාගත හැකි යමක් කරමු - සියර්පින්ස්කි ත්‍රිකෝණ ඇඳීමට අපි 'රීතිය 90' භාවිතා කරමු.

B0 13 CD 10 68 0F A0 1F AC 31 C2 88 94 3E 01 87 D3 93 EB F4

එකලස් කිරීමේදී:

mov al,13h      ; 2b
int 10h         ; 2b - Set the video mode to 13h

push    0xA00F  ; 3b
pop     ds      ; 1b - Set the data segment to video memory

start:          ; This loop runs 'Rule 90' to draw Sierpinski triangles
lodsb           ; 1b - load al with [ds:si] then increment si

xor     dx,ax   ; 2b - xor the left and right values of the previous row of pixels
mov     [si+318],dl ;4b - store result to memory

xchg    dx,bx   ; 2b - swap register values
xchg    ax,bx   ; 1b - swapping with ax is 1 byte shorter

jmp     start   ; 2b - infinite loop

නියැදි ප්‍රතිදානය: සියර්පින්ස්කි ත්‍රිකෝණ

මෙම වැඩසටහන සඳහා, අපි තරමක් ප්‍රසිද්ධ 'ප්‍රකාර 13' භාවිතා කරමු - වර්ණ 256 ක් සහිත 320x200 විභේදන සහිත ග්‍රැෆික් මාදිලිය. එය බොහෝ ජනප්‍රිය ඩොස් ක්‍රීඩා විසින් භාවිතා කරන ලදී ඩූම් වැනි .

දිග 21

අපි බලමු CPU නිෂ්පාදනය කළේ කවුද කියලා.

0F A2 66 60 BB EE FF B9 0C 00 8A 17 43 B4 02 CD 21 E2 F7 FF E1

එකලස් කිරීමට පරිවර්තනය කර ඇත:

cpuid         ; 2b  CPU ID - retrieve processor information based on the value in AX. For AX=0,
              ;     the 12 bytes in EBX, ECX, and EDX are loaded with a vendor identification string
pushad        ; 2b  Push all registers on the stack (32 bit version)
mov  bx,0xffee; 3b  Start of the vendor identification string on the stack
mov  cx,12    ; 3b  12 characters to print
print:    
mov  dl,[bx]  ; 2b  Character to print
inc  bx       ; 1b  Advance string position
mov  ah,2     ; 2b  Set AH to the 'Print character to STDOUT' value
int  21h      ; 2b  Call the bios interrupt to print
loop print    ; 2b  Decrement CX and jump if it is not zero
jmp  cx       ; 2b  Instead of restoring the stack, just jump right to the exit point

නියැදි ප්‍රතිදානය:

c:\misc>cpuid.com
GenuineIntel

මෙම වැඩසටහන මඟින් ක්‍රියාත්මක වන ප්‍රොසෙසරය පිළිබඳ තොරතුරු ලබා ගැනීමට CPUID උපදෙස් භාවිතා කරයි, විශේෂයෙන් විකුණුම්කරු හඳුනාගැනීමේ දාමය. අසාමාන්‍ය CPU නිෂ්පාදකයෙකු නොමැති නම් හෝ ඇතැම් අථත්‍ය යන්ත්‍රවල ක්‍රියාත්මක නොවන්නේ නම් බොහෝ දෙනෙකුට 'GenuneIntel' හෝ 'AuthenticAMD' පෙනෙනු ඇත.

දිග 26

අපට දැන් රසවත් සජීවිකරණ කළ හැකිය

B0 13 CD 10 C4 07 BB 40 01 59 99 89 F8 F7 F3 31 D0 AA E2 F6 26 FE 05 47 EB FA

එකලස් කිරීමේදී

mov al,13h     ;2b
int 10h        ;2b Enter Video Mode 13h

les ax,[bx]    ;2b Set ES to (roughtly) video memory
mov     bx,320 ;3b Set up  BX asdivisor
pop     cx     ;1b Zeroize CX

start:
cwd            ;1b Sign extend AX to DX, AX will never have the sign bit set so this zeroizes DX in 1 byte
mov     ax,di  ;2b Copy video memory pointer
div     bx     ;2b Divide by width to get AX = Y pos, DX = X pos
xor     ax,dx  ;2b X pos ^ Y pos
stosb          ;1b Store and increment video pointer
loop    start  ;2b CX starts at 0, so this will loop until it wraps around

cycle:
inc     byte [es:di];3b Increment value in video memory to animate
inc     di     ;1b Increment video memory pointer
jmp     cycle  ;2b Infinite loop 

ප්‍රතිදානය මේ ආකාරයෙන් පෙනෙනු ඇත:

මාර්චින් XOR

X pos ^ Y pos ශ්‍රිතය සිත්ගන්නාසුලු අස්ථි බිඳීමක් ඇති කරයි, විශේෂයෙන් සජීවීකරණය කළ විට

දිග 27

කුඩා x86 .com වැඩසටහනකින් ඔබට පෙළ සහ ග්‍රැෆික් ජනනය කළ හැකිවා පමණක් නොව, ඔබට ශබ්දය සහ සංගීතය ද ජනනය කළ හැකිය:

BA 31 03 B0 3F EE BA 30 03 B0 93 EE B4 01 CD 21 3C 1B EE 3C 1B B0 7F EE 75 EC C3

එකලස් කිරීමේදී:

    mov dx,0x331            ; value for the midi control port
    mov al,0x3F             ; command value to set midi mode to UART
    out dx,al               ; output the command to the midi control port
play_loop:
    mov dx,0x330            ; value for the midi data port
    mov al,0x93             ; midi instrument value (piano)
    out dx,al               ; output to midi data port
    mov ah,1
    int 0x21                ; read character from stdin, with echo
    cmp al,27               ; test if it is escape
    out dx,al               ; output the ascii value as the midi note to play
    mov al,0x7F             ; note duration
    out dx,al               ; output note duration
    jne play_loop           ; loop if escape was not pressed
    ret  

යතුරුපුවරුව පියානෝවක් බවට පත් කිරීම සඳහා මෙම වැඩසටහන මිඩි කාඩ්පත භාවිතා කරයි. මෙය සිදු කිරීම සඳහා, මිඩි කාඩ්පත UART මාදිලියට සකසා ඇති අතර, එය ලැබුණු විගස මිඩි සටහන් වාදනය කරයි. ඊළඟට, වැඩසටහන මඟින් අක්ෂරයක් එබෙන තෙක් බලා සිටින අතර ASCII අගය මිඩි කාඩ්පතට සටහනක් ලෙස ප්‍රතිදානය කරයි. පැන යාම තද කරන තුරු වැඩසටහන ක්‍රියාත්මක වේ.

දිග 29

ඩ්‍රැගන් වක්රය බිඳීමක් ජනනය කිරීම සඳහා නැවත ක්‍රියාකාරී ශ්‍රිතයක් භාවිතා කරමු :

B0 13 CD 10 89 D0 01 CA 29 C1 D1 FA D1 F9 73 03 83 E9 7A B4 01 CD 16 B8 02 0C 74 E6 C3

එකලස් කිරීමට පරිවර්තනය කර ඇත:

mov  al,13h
start:
int  0x10    ; This does double duty, setting the video mode to 13h at program start,
             ; and calling the 'draw pixel at coordinates' interrupt when looping
mov  ax,dx   ; The next couple instructions are our IFS, the algorithm is aproximately
add  dx,cx   ; f(y) = 0.5x + 0.5y
sub  cx,ax   ; f(x) = 0.5x - 0.5y OR f(x) = 0.5x - 0.5y - 1
sar  dx,1    ;
sar  cx,1    ;
jnc  skip    ; This jump handles pseudo-randomly switching between the two functions for x,
             ; based on if the previous value of x was odd or not.
sub  cx,122  ; Magic number, chosen since it provides sufficent 'randomness' for a filled in
             ; fractal and a good scale to the fractal. 102 and 130 also work.
skip:
mov  ah,1
int  0x16    ; Get keyboard state, zero flag will be set if no key has been pressed
mov  ax,0xC02; Set up AH for the draw pixel function when int 0x10 is executed,
             ; AL = color, CX = column, DX = row
jz   start   ; Loop if a key hasn't been pressed
ret  

ප්‍රතිදානය:

ඩ්‍රැගන් වක්රය

පාලක නොවන යතුරක් එබීමෙන් වැඩසටහනෙන් ඉවත් වීමට හේතු වේ. මෙය පදනම් වී ඇත්තේ Pouet.net හි Desire විසින් ගිනි කොරල් වලින් ඉවත් කරමිනි.

දිග 52

මෙම වැඩසටහන ටිකක් ද්විත්ව අංගයක් වන අතර, එය x87 පාවෙන ලක්ෂ්‍ය සම-සකසනය සහ ස්වයං වෙනස් කිරීමේ කේතය පෙන්වයි.

B3 07 D9 E8 B1 11 DE 0E 32 01 E2 FA BE 0A 24 56 B1 09 DF 34 AC D4 10 
86 E0 05 30 30 50 E2 F5 44 B4 2E 50 89 E2 B4 09 CD 21 FE 06 03 01 4B
75 D2 CD 20 0A 00

ක්‍රියාත්මක වන විට, වැඩසටහන ගණිතමය නියතයන් කිහිපයක් ප්‍රතිදානය කරයි:

1.00000000000000000
3.32192809488736235
1.44269504088896341
3.14159265358979324
0.30102999566398120
0.69314718055994531
0.00000000000000000

ඒවා නම්, ලොග් 2 (10), ලොග් 2 (ඉ), පයි, ලොග් 10 (2), ලොග් ඊ (2) සහ ශුන්‍යය.

එකලස් කිරීමේදී:

org 100h

mov     bl,7         ;Counter for the total number of constants to print
start:
fld1                 ;Floating point constant to load on the FP stack,
                     ;start with 1 since it's op-code is the lowest

mov     cl,17        ;Multiply the constant by 10, 17 times to get the
mult:                ;printing part as an integer
fimul   word[ten]
loop    mult

mov     si,10+'$'*256;ASCII new line (10) and the end-of-string ($)
                     ;characters. These are used both as
push    si           ;a constant memory location, and stored to the
                     ;stack to format and printing

mov     cl,9         ;print 18 digits (9 pairs)
fbstp   [si]         ;store the integer part of the floating point
                     ;number on top of the FP stack as a packed
                     ;binary-coded decimal number (1 digit/nibble),
                     ;and then pop the number off the FP stack

convert:
lodsb                ;load a pair of packed digits

db 0xd4,16 ; AAM 16  ;ASCII Adjust For Multiply instruction using
                     ;non-standard base 16. This puts AL/16 in AH,
                     ;and AL%16 in AL, unpacking the digit pair.

xchg    ah,al        ;Swap the digit order
add     ax,'00'      ;Convert the digits to ASCII values
push    ax           ;Store digits on the stack
loop    convert

inc     sp           ;AX now holds the 1st 2 digits to print,
mov     ah,'.'       ;so to insert a decimal point, the 2nd digit
push    ax           ;is replaced with a '.', the stack pointer
                     ;is adjusted to overwrite 1 byte, and then
                     ;AX is pushed on the stack

mov     dx,sp        ;Load DX with the start of the print string
mov     ah,9         ;Load AH with the 'Print String' constant
int     21h          ;Call the 'Print String' interrupt to display
                     ;the constant

inc     byte[start+1];Self-modifying code - increment the load
                     ;floating point constant op-code to iterate
                     ;through all of them

dec     bx
jnz     start        ;Exit when all 7 constants have been printed
int     20h


ten: dw  10

X86 පද්ධතිවල පාවෙන ලක්ෂ්‍ය ගණිතය මුලින් හසුරුවනු ලැබුවේ විකල්ප x87 සම සකසනයෙනි, 486 වන තෙක් එය එකම චිපයක් වෙත ගෙන යන ලදී. X87 ට වඩා වෙනස් ගෘහ නිර්මාණ ශිල්පයක් තිබුනි, එය තොග මත පදනම් වූ අතර 8bit බිට් රෙජිස්ටර් 8 ක් ඇත. එයට විවිධාකාර වටකුරු මාතයන්, නිරවද්‍යතාව සහ ආවරණ කළ හැකි ව්‍යතිරේකයන් ද සැකසිය හැකිය.

මෙම වැඩසටහන මඟින් සකසනය තුළට පිළිස්සූ නියත හතක් සඳහා අගයන් මුද්‍රණය කරයි. 0 සහ 1 වැනි සරල නියතයන් සඳහා උපදෙස් අවකාශය නාස්ති වන බව අමුතු බවක් පෙනෙන්නට තිබුණත්, මතක කට්ටලය නිර්මාණය කරන ලද්දේ මතකය කුඩා වන විට වන අතර මෙම උපදෙස් සාමාන්‍යයෙන් සමාන මෙහෙයුම් වලට වඩා බයිට් 2 ක් කුඩා වේ. මෙම වැඩසටහන FBSTP -Store BCD Integer and Pop යන අපැහැදිලි උපදෙස් ද භාවිතා කරයි. X86 සංවර්ධනය කරන විට, BCD අංකවල මෙහෙයුම් වඩාත් සුලභ වූ අතර, x86 / x87 හි BCD ගණිතය සරල කිරීම සඳහා විශේෂයෙන් උපදෙස් කිහිපයක් ඇත, එනම් AAM 'ASCII Adjust for Multiple' උපදෙස් ද වැඩසටහනේ භාවිතා වේ.

මුල් x86 වැඩසටහන් භාවිතා කරන අනාරක්ෂිත මතක ආකෘතියේ, දත්ත සහ කේතය අතර වෙනසක් නොමැත. මේ නිසා, සුදුසු අගය වැඩි කිරීමෙන් අනුක්‍රමිකව කේතනය කර ඇති 'නියත පැටවීම' උපදෙස් හරහා නැවත යෙදීම පහසුය.

දිග 64

මැන්ඩෙල්බ්‍රොට් අභියෝගය සඳහා මගේ ප්‍රවේශය හරස් පෝස්ට් කිරීම , 320x200 වර්ණ මැන්ඩෙල්බ්‍රොට් ෆ්‍රැක්ටල් එකක් බයිට් 64 කින් පමණක් පෙන්වන වැඩසටහනක් ලිවිය හැකිය.

B0 13 CD 10 C4 07 99 89 F8 B9 40 01 F7 F1 83 E8 64 FE CE 31 DB 31 F6 
89 F5 0F AF F3 01 F6 0F AF DB 70 19 0F AF ED 70 14 01 EB 70 10 29 EB
29 EB C1 FB 06 01 D3 C1 FE 06 01 C6 E2 DB 91 AA EB C6

එකලස් කිරීමේදී:

mov al,13h ; set up graphics mode 13
int 10h

les ax,[bx]; trick to set video memory

FillLoop:
cwd
mov ax,di  ; di is the current position on screen
mov cx,320 ; convert di int x,y screen coordinates
div cx     ; CX is the iteration counter, exit the loop if it hits
           ; zero before the value escapes.
sub ax,100 ; center the fractal vertically
dec dh     ; center the fractal horizontally

xor bx,bx
xor si,si

MandelLoop: ; Fairly standard Mandelbrot routine,
mov bp,si   ; exits if the values overflow
imul si,bx
add si,si
imul bx,bx
jo MandelBreak
imul bp,bp
jo MandelBreak
add bx,bp
jo MandelBreak
sub bx,bp
sub bx,bp

sar bx,6   ; We use fixed point math with the lowest 6
add bx,dx  ; bits being the fractional portion, so this
sar si,6   ; rescales the values after multiplication
add si,ax

loop MandelLoop

MandelBreak:
xchg ax,cx ; Write the escape itteraction as the color
stosb
jmp FillLoop

අවසාන ප්‍රති result ලය මෙම රූපයයි:

මැන්ඩෙල්බ්‍රොට් ෆ්‍රැක්ටල්

මෙම වැඩසටහන බයිට් අඩු ප්‍රමාණයක් ගන්නා බැවින්, අස්ථි ජනනය කිරීම සඳහා ස්ථාවර ලක්ෂ්‍ය ගණිතය භාවිතා කරයි. බිට් 16 රෙජිස්ටරයේ අඩුම බිටු 6 සංඛ්‍යාවේ භාගික කොටස ලෙස සලකනු ලබන අතර, ගුණ කිරීමෙන් පසු අගයන් නැවත ලබා ගනී.


7
පීපීසීජී හි දැකිය හැකි සියලුම භාෂා අතරින් මම මෙය අපේක්ෂා නොකළෙමි.
ඇලෙක්ස් ඒ.

23
වොව්. මෙය අදහස් දැක්වීමට වෙනත් අක්ෂර එකතු කරන්න. නමුත් බරපතල ලෙස. වොව්.
krs013

2
Ic මයිකල් ඊඩන්ෆීල්ඩ් ඩොස්බොක්ස් යනු එයයි!
සර්_ලග්සාලොට්

1
බයිට් 20 සියර්පින්ස්කි ඉතා ආකර්ෂණීයයි.
qwr

1
මම හොඳ ක්‍රමලේඛකයෙකු ලෙස සලකමි, නමුත් මම මේ දෙස බලන විට පරාජය පිළිගත යුතුය.
ස්ටෙෆාන් බිජ්සිටර්

122

හස්කල්

ඔබට පහළ සිට ඉහළට කියවීමට අවශ්‍ය විය හැකිය. සමහර විට මම පහළ ස්නිපෙට් වෙත යොමු කරමි, නමුත් කිසි විටෙකත් ඉහළ ඒවා වෙත යොමු නොවෙමි, එබැවින් එය තේරුම් ගැනීමට උපකාරී වේ.

හස්කල් නොදන්නා පා ers කයන්: මට පැහැදිලිද? මට පැහැදිලි නැති විට? මට කියන්න බැහැ.

දිග 86 ස්නිපටය

අපගේ ගස් දත්ත ව්‍යුහය සඳහා නැමිය හැකි උදාහරණයක් (ස්නිපෙට් 23). ෆෝල්ඩබල් යනු වර්ගයේ පන්තියකි - මෙන්, පන්තියේ (/ කණ්ඩායම්) වර්ගයකි. මේවා ජාවාහි අතුරුමුහුණත් වලට සමාන්තර වේ. ඒවා මූලික වශයෙන් වර්ග වලට වඩා සාමාන්‍යකරණය කරයි, පොදු ලක්ෂණ ඇති වර්ගීකරණය කරයි; උදාහරණයක් ලෙස, ඒවා එකට එකතු කළ හැකිය ( Monoid), බහාලුම් ( Functor), පෙළ ලෙස මුද්‍රණය කළ හැකිය ( Show, අප දැනටමත් හමු වී ඇති, showශ්‍රිතයේ) සහ යනාදිය. මෙය ලැයිස්තුවට සමාන දත්ත වර්ග ඒකාබද්ධ කරයි, එමඟින් ඒවා නැවත සැකසීමට හෝ ලැයිස්තුවකට සමතලා කළ හැකිය.

මෙම ස්නිපටයේ, අපි නිර්වචනය කිරීමෙන් නිදසුන නිර්වචනය කරමු foldr, එය මූලික වශයෙන් දත්ත වර්ගය දකුණේ සිට වමට නැවත නැවතත් දක්වයි. දැන් අපට සාමාන්‍ය පෙර ලිඛිත කේත පොකුරක් භාවිතා කළ හැකිය. පළමුවෙන්ම, අපි සියලු අවුල් සහගත තත්වයන් මඟහරවා ගැනීම සඳහා තනි ගසක් ලබා ගැනීම සඳහා උපකාරක ශ්‍රිතයක් අර්ථ දක්වන්නෙමු : s a = N E a E. දැන්:

sum (N (s 3) 7 (N E 5 (s 8))     === 23
product (N (s 3) 7 (N E 5 (s 8)) === 840
toList (N (s 3) 7 (N E 5 (s 8))  === [3,7,5,8]

සහ යනාදි.

මෙන්න අපේ ගසේ පින්තූරයක්:

7
| \
3  5
    \
     8

දිග 70 ස්නිපටය

primes=sieve[2..] where
 sieve(p:xs)=p:sieve(filter(\x->x`mod`p/=0)xs)

මෙය ප්‍රමුඛ පෙරනයක්!

(සටහන: වෙනත් භාෂාවලින් /=ඇත්තේ එයයි !=)

මෙය ක්‍රියාත්මක වන්නේ sieveලැයිස්තුව පෙරහන් කරන ශ්‍රිතයක් නිර්වචනය කිරීමෙන් සහ පෙර කිසිදු ප්‍රාථමිකයකින් බෙදිය නොහැකි සංඛ්‍යා පමණක් තබා ගැනීමෙනි. එය පුනරාවර්තන ලෙස අර්ථ දක්වා ඇත - sieveයන්න අර්ථ දැක්වෙන්නේ ලැයිස්තුව පළමු මූලද්‍රව්‍යයට pසහ වලිගයකට බෙදීම, වලිගයෙන් බෙදිය හැකි ඕනෑම අංකයකින් පෙරීම p, sieveඉතිරි බිට්, pඑහි ආරම්භයට අමුණා නැවත පැමිණීම ය.

නැවතත්, අපි මෙහි අසීමිත ලැයිස්තු සමඟ වැඩ කරන්නෙමු - නමුත් ගණනය කිරීම සඳහා ඔබට අසීමිත ප්‍රාථමික ප්‍රමාණයක් අවශ්‍ය නොවන තාක් කල් ගණනය කිරීම නතර වනු ඇත.

take 4 primes === [2,3,5,7]

දිග 68 ස්නිපටය

අවසාන වශයෙන්, ක්වයින්!

main=do putStr s;print s where s="main=do putStr s;print s where s="

ඔබ මෙය කියවන පළමු වතාවේදී, මෙම බිසවගේ ප්‍රතිදානයේ උද්ධෘත ලකුණු නැති වනු ඇතැයි ඔබ සිතනු ඇත, ඔබ වරක් putStrසහ වරක් ලිවීමට හේතුව printකුමක්ද? එය සමාන ය.

හස්කල් හි, putStrශ්‍රිතයක් යනු එය ලබා ගන්නා නූලෙහි අන්තර්ගතය මුද්‍රණය කිරීමයි. printකෙසේවෙතත්, දේවල් මුද්‍රණය කිරීම සඳහා මුද්‍රණය කරයි. ඉතින්, print 4සමාන වේ putStr "4\n", නමුත් putStr 4විකාරයකි - 4නූලක් නොවේ! එබැවින්, printඅගයක් ලැබුණු විට, එය පළමුව එය නූලක් බවට පරිවර්තනය කර, පසුව එම නූල මුද්‍රණය කරයි. සාමාන්‍යයෙන් දේවල් නූල් බවට පරිවර්තනය කිරීමේ ක්‍රමය නම් ඔබ එය කේතයෙන් ලියා තබන ආකාරය සොයා ගැනීමයි. ඒ නිසා, ඔබ, සංගීත ලියන්න යන ආකාරය abcHaskell කේතය දී වැලක් වේ "abc", ඒ නිසා print "abc"ඇත්තටම පිටපත් "abc"නොව abc.

මට දැන් ප්‍රමාණවත් තරම් ඡන්ද ප්‍රමාණයක් තිබීම කොතරම් වාසනාවන්තද, මට මේ දේවල් ගොල්ෆ් කිරීමට අවශ්‍ය නොවනු ඇත

දිග 33 ස්නිපටය:

main=go 0
go n=do print n;go(n+1)

සැලකිල්ලට ගත යුතු වැදගත්ම දෙය නම් අපි ලූපයක් භාවිතා නොකිරීමයි. හස්කල් ලූපයක් නැත. හස්කල් පුනරාවර්තනය වේ. හස්කල්ට ලූප නොමැත. එය ඊට වඩා ගැඹුරු ය: හැස්කෙල්ට පාලක ප්‍රවාහයක් පවා නැත . කොහොමද, ඔබ අහන්නේ? හොඳයි, එයට කිසිවක් අවශ්‍ය නොවේ.

විස්තර සමඟ ඉදිරියට යන්න. මෙම වැඩසටහන 0 සිට ඇරඹෙන නිඛිල සංඛ්‍යා අනුක්‍රමයක් goමුද්‍රණය කරයි. එහි ආදානයෙන් පටන් ගෙන ඒවා මුද්‍රණය mainකරයි 0.

doයනු හස්කල්ගේ විශේෂ සින්ටැක්ටික් බලයකි. මෙම තත්වය තුළ, එය සිදු කරන ආකාරයටම I / O ක්‍රියා ඒකාබද්ධ කරයි >>(ස්නිපෙට් 22 බලන්න).

දිග 26 ස්නිපටය:

map f=foldr(\x y->f x:y)[]

මෙය mapශ්‍රිතය නිර්වචනය කරයි, බොහෝ විට සෑම කෙනෙකුටම හුරුපුරුදුය, භාවිතා foldrකරයි. අප ප්රකාශ කරන නමුත් කළේ නැහැ දැනුම් mapගේ වර්ගය, පරිගණක කෙසේ හෝ එහි ගණය දන්නා (a -> b) -> [a] -> [b], එනම් සිට උත්සවයකට ලබා aගැනීමට b, සහ ලැයිස්තුවක් as, ලැයිස්තුවක් නැවත bs.

එය දැනගත්තේ කෙසේද ?? ;-)

දිග 25 ස්නිපටය:

main=putStr"Hello World"

සම්මත හෙලෝ වර්ල්ඩ්. වර්ග සටහන් කරන්න: mainවර්ගයක් ඇති IO ()අතර putStrවර්ගයක් ඇත String -> IO ()(නූල් සිට I / O ක්‍රියා දක්වා කිසිවක් ආපසු නොදෙන ශ්‍රිතයක්).

දිග 23 ස්නිපටය:

data T a=E|N(T a)a(T a)

මෙය ගසක සම්මත අර්ථ දැක්වීමකි. ජාවා, සී හෝ වෙනත් ඕනෑම දෙයක ගසක් අර්ථ දැක්වීමට අවශ්‍ය සියලු රේඛාවලට වඩා කොතරම් පහසුද.

(ස්නිපෙට් 10 බලන්න)

අපි එය බිඳ දමමු:

data- මෙම ප්‍රකාශය දත්ත වර්ගයක් ප්‍රකාශ කරයි. T a- වර්ගයේ මූලද්‍රව්‍ය අඩංගු ගසක් a. අපි නිර්වචනය කරන වර්ගය මෙයයි. =- සෑම අගයක්ම T aපහත සඳහන් ඕනෑම එකක් වනු ඇත, පයිප්පයකින් වෙන් කරනු ලැබේ |. E- විය හැකි අගයන්ගෙන් එකක් T s- හිස් ගස. N (T a) a (T a)- ගසක ඇති අනෙක් අගය - නෝඩයක්. සෑම නෝඩයක්ම වම් දරුවා ( (T a)) මූලද්‍රව්‍යය ( a) සහ දකුණු දරුවා ( (T a)) වලින් සමන්විත වේ.

දිග 22 ස්නිපටය:

main=putStrLn"y">>main

හැස්කල් yesශ්‍රිතයක්. >>I / O ක්‍රියා දෙකක් ඒකාබද්ධ කර අනුක්‍රමණය කරන ක්‍රියාකරු වේ. එය වර්ගයක් ඇත >> :: IO a -> IO b -> IO b.

mainI / O ක්‍රියාව මුලින් මුද්‍රණය "y"කර පසුව mainතමන් විසින්ම කරන ඕනෑම දෙයක් ලෙස පුනරාවර්තන ලෙස අර්ථ දැක්වේ .

දිග 18 ස්නිපටය:

fix f=r where r=f r

සඳහා වඩා හොඳ අර්ථ දැක්වීමක් fix. (බලන්න 14. snippet) ප්රථම අර්ථ ඇති ප්රශ්නය, fix f = f(fix f), සෑම අවස්ථාවකදීම අපි ඇමතුමක් බව ය fix f fixසිහිපත් fix fසිහිපත් කරන fix fඑම පරිගණකයට නිමක් නැති පිටපත් ජනනය,. මෙම අනුවාදය එය නිවැරදි කරන්නේ r( ප්‍රති result ලය) ප්‍රති result ලය ලෙස අර්ථ දැක්වීමෙනි ; වැනි , f r = r. ඉතින්, අපි නිර්වචනය කරමු r = f r. දැන් අපි ආපසු එනවා r.

දිග 17 ස්නිපටය:

f n=product[1..n]

සාධකය නිර්වචනය කිරීමේ ක්‍රියාකාරී ක්‍රමය මෙයයි.

දිග 16 ස්නිපටය:

f n=(\x->x+x+x)n

(\x -> x + x + x)ලැම්බඩා (යමෙකු සිතුවේ \අකුරට සමානයි කියාය .).

(\x -> x + x + x) nලැම්බඩා යෙදී තිබේද n(මෙය හරියටම සමාන වේ n + n + n).

fයනු ගුණ කිරීමේ-තුනක ශ්‍රිතයයි (එසේම f = (*3))

දිග 15 ස්නිපටය:

sum=foldl (+) 0

මෙය sumගුණයකින් ශ්‍රිතය අර්ථ දක්වයි . ගුණයකින් මූලික වශයෙන් එක් සමුච්චයක් සහිත ලැයිස්තුවක මූලද්‍රව්‍යවලට වඩා ලූපයකි. සමුච්චය සහ ලැයිස්තුවක් සඳහා
foldlයම්කිසි ශ්‍රිතයක් fසහ ආරම්භක අගයක් තර්ක ලෙස ගනී . ශ්‍රිතය පෙර සමුච්චකාරක අගය සහ ලැයිස්තුවේ වත්මන් අගය ආදානය ලෙස ලබා ගත යුතු අතර, එය ඊළඟ සමුච්චය නැවත ලබා දෙයි. එවිට ලැයිස්තු අගයන්හි ගුණය නැවත නැවතත්, පෙර සමුච්චය මත යොදන අතර පසුව අවසාන සමුච්චය නැවත ලබා දෙයි.xxsf
f

නැමීම් ගැන සිතීමට තවත් ක්‍රමයක් fනම්, ලැයිස්තු අගයන් අතර සහ එක් පැත්තක ආරම්භක සමුච්චය සමඟ 'ඇතුළු කිරීම්' වැනි ය . උදාහරණයක් ලෙස, foldl (*) 1 [4,2,5]ඇගයීම 1 * 4 * 2 * 5.

දිග 14 ස්නිපටය:

fix f=f(fix f)

මෙම ycombinator. එය සාමාන්‍යයෙන් නම් කර fixඇත්තේ එය සමීකරණයේ නිවැරදි ස්ථානය සොයා ගන්නා බැවිනි f x = x. x = infinite loopසමහර විට විසඳුමක් ද විය හැකි බව සලකන්න , එබැවින් fix (\x -> x^2 + 5*x + 7)සමීකරණය විසඳන්නේ නැති අතර x^2 + 4*x + 7 = 0ඒ වෙනුවට අසීමිත පුඩුවක් ලබා දේ.

x = infinite loopහැස්කෙල්ගේ කම්මැලිකම නිසා සෑම විටම විසඳුමක් නොවන බව ඔබට සටහන් විය හැකිය .

මෙම අනුවාදය කාලය සහ අවකාශය කාන්දු වීමකි; අපි එය දිගු ස්නිපටයකින් නැවත අර්ථ දක්වන්නෙමු.

දිග 13 ස්නිපටය:

f=sum.map(^2)

මෙම නිර්වචනය කාර්යය f ලබා ලැයිස්තුවක් එහි කොටු මුදලක් ආපසු හරවා. එය ද කාර්යය සංයුතිය කාර්යය sum සහ කාර්යයmap(^2) අනෙක් අතට වන, කාර්යය map වෙත අයදුම් කාර්යය (^2) (මෙම වර්ග කාර්යය අනෙක් අතට කොටසක් වන), උත්සවයට ^ (කොටස් ඇබිත්ත 2, හා සංයුතිය දී ඇබිත්ත දී හඳුන්වා දෙන ලදී 3 ).

ඔබ දැක ගැනීමට හැකි වන පරිදි, කාර්යයන් දී ඉතා වැදගත් වේ ක්රියාකාරී Haskell වැනි භාෂාව. ඇත්ත වශයෙන්ම, එය Haskell වඩාත් පුස්තකාලයක් සමග භාෂාව බව ප්රකාශ කර තිබේ කාර්යයන් ලබා ඇති කාර්යයන් යෙදවුම් හෝ ආපසු ලෙස කටයුතු (මෙම සාමාන්යයෙන් ලෙස හැඳින්වේ ප්රතිදානයන් ලෙස ඉහල නියෝගයක් උත්සවය .

මාර්ගය වන විට, තාක්ෂණික වශයෙන්, සෑම දෙකක හෝ වැඩි තර්ක ශ්‍රිතයක් යනු ප්‍රතිදානයන් ලෙස ශ්‍රිත නැවත ලබා දෙන ශ්‍රිතයකි (මෙය ව්‍යංජන ලෙස හැඳින්වේ).

දිග 10 ස්නිපටය:

data B=T|F

මෙය විවිධ නම් සහිත හස්කල් බූලියන් වල අර්ථ දැක්වීමකි. බූලියන් වර්ගය නම් කර Bඇත.
මෙම නිර්වචනය මඟින් ඉදිකිරීම්කරුවන් දෙදෙනෙකු හඳුන්වා දෙයි: සත්‍ය ( T) සහ අසත්‍ය ( F).
මෙම කේත ස්නිපටය මූලික වශයෙන් සම්පාදකයාට පවසන්නේ සෑම බූලියන් ( B) සත්‍ය ( T) හෝ අසත්‍ය ( F) හෝ වෙනත් වචන වලින් , B=T|F.

ඇත්ත වශයෙන්ම, සියලුම දත්ත වර්ග හැස්කෙල් හි අර්ථ දැක්විය හැකිය, වෙනත් භාෂාවලින් අංකය, යොමු කිරීම් සහ අරාව දත්ත වර්ග සඳහා සම්පාදකයාගේ විශේෂ සහාය අවශ්‍ය වේ. ප්‍රායෝගිකව හස්කල් හි විශේෂ සහයෝගයක් ඇත, එය වෙනත් ආකාරයකින් අපහසුතාවයට පත්වන බැවින්, නමුත් නිදසුනක් ලෙස Boolදත්ත සමුදාය මුළුමනින්ම භාෂාවෙන් අර්ථ දක්වා ඇත.

දිග 9 ස්නිපටය:

main=main

මෙම විකාර වැඩසටහන mainප්‍රධාන යැයි අර්ථ දක්වනු ඇත. හස්කල් කම්මැලි නිසා, ඇගයීමට අසීමිත පුඩුවක් අවශ්‍ය වන අගයන් අප ඒවායේ සත්‍ය වටිනාකම භාවිතා නොකරන්නේ නම් නිදහසේ භාවිතා කළ හැකිය. අප වැනි අනන්ත ලූප අඩංගු එවැනි අගයන් main"බෝතල්" ලෙස හැඳින්වේ.

විනෝදජනක කරුණක් නම්, GHC හැස්කල් සම්පාදකයාට මෙම ආකාරයේ අසීමිත ලූප හඳුනාගෙන එය ක්‍රියාත්මක වන විට අල්ලා ගත හැකි (!) ව්‍යතිරේකයක් විසි කළ හැකිය.

දිග 8 ස්නිපටය:

f(x:_)=x

fහිස් නොවන ලැයිස්තුවක් ලබා දී එහි හිස නැවත ලබා දෙන ශ්‍රිතය මෙය අර්ථ දක්වයි .

හස්කල් හි රටා පයිතන්ගේ අනුක්‍රමය මුදා හැරීම හා සමාන ය, නමුත් සියලු වර්ග සඳහා සාමාන්‍යකරණය කර ඇත. රටාවන්ට අගයක් ප්‍රතික්ෂේප කිරීමට හෝ ගැලපීමට හැකි අතර එය ගැලපෙන්නේ නම් විචල්‍යයන් අගයන්ට බැඳිය හැකිය.

මෙම ස්නිපටයේ රටා:

  • _: ඕනෑම දෙයකට ගැලපෙන හා විචල්‍යයක් බැඳ තබන රටාව.
  • x: ඕනෑම දෙයක් බන්ධනය කර විචල්‍යයට බන්ධනය කරන රටාව x.
  • :: මෙම රටාව ළමා රටාවන්ට, එනම් හිසට එකක් සහ වලිගයට එකක් ලබා ගනී. ලැයිස්තුව හිස් නොවේ නම්, එය හිස සහ වලිගය සමඟ ගැලපේ.

රටා ගැලපීම අතිශයින් සාමාන්‍යකරණය වී ඇත. ඇත්ත වශයෙන්ම, නව දත්ත වර්ග නිර්වචනය කිරීමෙන් ඒවා සමඟ වැඩ කිරීම සඳහා රටා ස්වයංක්‍රීයව හඳුන්වා දෙනු ඇත.

දිග 5 ස්නිපටය:

x=2:x

අපොයි, මේ ගැන පැහැදිලි කිරීමට බොහෝ දේ ඇත.

පළමුවෙන්ම, හස්කල් කම්මැලි ය. මෙයින් අදහස් කරන්නේ උප ප්‍රකාශන ඇගයීමට ලක් කරනු ලබන්නේ දැඩි ලෙස අවශ්‍ය වූ විට පමණක් බවයි.

සටහන: මෙම කේත ස්නිපටය පැවරුම නොපෙන්වයි, නමුත් අර්ථ දැක්වීම. හස්කල්ට පැවරුමක් නැත.

මෙම කේත ස්නිපටය අර්ථ දක්වා ඇත x, අසීමිත ලැයිස්තුවක් මුළුමනින්ම සෑදී ඇත 2. සාමාන්‍යයෙන් වෙනත් භාෂාවලින් xඇගයීමට පෙර ඇගයීමට ලක් 2:xකළ යුතු නමුත් හැස්කෙල්හිදී අපට මෙය කළ හැකිය.

හස්කල් අනන්ත ලැයිස්තු යනු අනුකාරක සහ නිත්‍ය සම්බන්ධිත ලැයිස්තු වල සංකලනයකි: ඒවා දෙකම මෙන් ක්‍රියා කරයි (පරාසයක් හරහා නැවත ක්‍රියා කිරීම නියත මතකය භාවිතා කරයි, උදාහරණයක් ලෙස).

දිග 4 ස්නිපටය:

2:[]

මෙම ස්නිපටය සිංගල්ටන් ලැයිස්තුව සංකේතවත් කරයි [2]. :යනු අවාසි Haskell දී ක්රියාකරු. ඇත්ත වශයෙන්ම, නිත්‍ය ලැයිස්තු සින්ටැක්ස් යනු අවාසි ක්‍රියාකරුට සහ හිස් ලැයිස්තුවේ වචනාර්ථයෙන් සින්ටැක්ටික් සීනි පමණි. රටා ගැළපුම සහ දත්ත වර්ග (විශේෂයෙන් ඉදිකිරීම්කරුගේ සංකල්පය) සමඟ හැස්කෙල් කටයුතු කරන ආකාරය සමඟ මෙය තදින් බැඳී ඇත.

දිග 3 ස්නිපටය:

f.g

හස්කල් හි, .ක්‍රියාකාරී සංයුතිය නියෝජනය කරයි. හස්කල් "ලක්ෂ්‍ය රහිත" ශෛලියකින් ලිවිය හැකි අතර එය සංලක්ෂිත වන්නේ ක්‍රියාකාරී තර්ක නම් නොකිරීම සහ ඒ වෙනුවට .දත්ත ප්‍රවාහය හැසිරවීමට ක්‍රියාකරු භාවිතා කිරීමයි .

දිග 2 ස්නිපටය:

1-

මෙම කේතය වරහන් තුළ ඔතා ඇති විට (සින්ටැක්ටිකල් හේතූන් මත) එය "අංශයක්" ලෙස හැඳින්වේ. එය යම් සංඛ්‍යාවක් ලබා දුන් ශ්‍රිතයක් වන අතර හිස් ස්ථානය “පුරවා” එම සංඛ්‍යාවෙන් min ණ එකක් ලබා දෙයි. මෙම අදහස සමහර විට හස්කල් වැනි ක්‍රියාකාරී භාෂාවකට ප්‍රයෝජනවත් වේ, එසේ නොමැතිනම් ලැම්බඩා අවශ්‍ය වේ.

දිග 1 ස්නිපටය:

1

Haskell දී, 1දෙකම ගැනීම යනු Int, Float, Double, Wordඉතින්, සහ. ඇත්ත වශයෙන්ම, ඔබට 1ඕනෑම වර්ගයක අනුවාදයක් නිර්වචනය කර එය නිදහසේ භාවිතා කිරීමට කේත ලිවිය හැකිය .
මෙය ජාවාස්ක්‍රිප්ට්, පයිතන් සහ වෙනත් යනාදියෙහි ද සිදු කර ඇත, නමුත් ඒවා මෙන් නොව එය සම්පූර්ණ වර්ගයේ ආරක්ෂාව සහිතව සිදු කෙරේ.

factoid:

මුලදී, හස්කල් කමිටුව හස්කල් බී. කරිගේ නමට පසුව භාෂාව "කරි" ලෙස හැඳින්වීමට අදහස් කළ නමුත් සමහර ද s ුවම් ඇතිවිය හැකි බැවින් එම නම හැස්කල් ලෙස වෙනස් කිරීමට තීරණය කළේය. හස්කල්ගේ "පැස්කල්" සහ "හැසල්" වලට සමාන බව පසුව ඔවුන් දුටුවේය!


වෙනත් කාර්යයන් වලින් ශ්‍රිත ජනනය කරන (සහ තාක්‍ෂණිකව සෑම පරාමිති ශ්‍රිත දෙකක් හෝ වැඩි ගණනක්) සම්මත පුස්තකාලයේ වැඩිපුරම ක්‍රියාකාරී / ක්‍රියාකරුවන් සිටින්නේ හස්කල්ට බව ෆැක්ටොයිඩ් වෙනුවට ආදේශ කළ යුතුදැයි මම නොදනිමි. මා කළ යුතුද?
ආඩම්බර හස්කලර්

එය ස්නිපටයක පෙන්වමින් පැහැදිලි කිරීමේදී එය එක් කරන්න.
මාටින් එන්ඩර්

f=0:1:zipWith(+)f(tail f) -- 25 chars, ෆිබොනාච්චි අංකවල කම්මැලි ගණනය කළ ලැයිස්තුවක් ලබා දෙන ශ්‍රිතයකි.
chamini2

අහ් මම ස්නිපෙට් පොකුරක් එකතු කර මගේ පරිගණකය වසා දැමුවෙමි
ආඩම්බර හස්කලර්

roudproudhaskeller ඉතිරි කිරීමේ විකල්පය. මම මෙය කිසි විටෙක පෞද්ගලිකව කර නැත, නමුත් ඔබට එකවර විශාල සංස්කරණයක් කිරීමට තිබේ නම්, ඔබට සංස්කරණය බාහිර ලේඛනයක ඉතිරිකිරීමෙන් සිදු කළ හැකිය, එය සම්පුර්ණ වූ විට එය අලවන්න.
mbomb007

100

සී #

C # යනු ජාවා, සී, හැස්කෙල්, එස්.කේ.එල් සහ වෙනත් භාෂා ගණනාවක විනෝදජනක, පිස්සු සංකලනයක් වන අතර, එය ඇත්තෙන්ම හොඳ විශේෂාංග සහ ඒපීඅයි ගොඩක් සපයයි. එය ඉතා වාචික වීම නිසා මෙහි ද ප්‍රසිද්ධයි, නමුත් අපට කළ හැකි දේ අපි බලමු!

සුපුරුදු අවශ්‍ය බොයිලේරු තහඩුව මම නොසලකා හරිමි:

class Program { public static void Main(string[] args) { ... } }

දිග 1:

;

C # හි අර්ධ සළකුණු සමඟ විධාන අවසන් වේ! හිස් රේඛාවක් පරිපූර්ණ වලංගු වාක්‍ය ඛණ්ඩයකි.

දිග 5:

x=5f;

ඔබ C # හි වචනාර්ථ සංඛ්‍යා සඳහන් කළ විට, සම්පාදකයා ඒවා අඟල් හෝ ද්විත්ව යැයි උපකල්පනය කරයි (ඒවාට දශම ලක්ෂ්‍යයක් තිබේද යන්න මත පදනම්ව). ඔබට වචනානුසාරයෙන් පාවෙන දෙයක් භාවිතා කිරීමට අවශ්‍ය නම්, අංකයට 'f' එකතු කිරීමෙන් හෝ එය ක්‍රියාත්මක වන වේලාවේදී සුළු පිරිවැයක් දරමින් එය සඳහන් කළ යුතුය.

දිග 7 (බයිට්):

s=@"
";

ඔබ වචනාර්ථයෙන් @ ලකුණක් සහිත උපසර්ගයක් නම්, එය “වාචික” වචනාර්ථයක් බවට පත්වේ. සාමාන්‍ය වචන සාහිත්‍යකරුවන් '\ n' වැනි ගැලවීමේ අනුපිළිවෙල විශේෂ අක්ෂරවලට විග්‍රහ කරයි, නමුත් වාචික සාක්ෂරතාවන් එසේ නොකරන්නේ බැක්ස්ලෑෂ් චරිතය එයින් ගැලවී නොයා භාවිතා කිරීමටය. පෙන්වා ඇති පරිදි ඒවාට රේඛීය ප්‍රතිලාභ ද ඇතුළත් කළ හැකිය. එමඟින් ඔබට ගොල්ෆ් ක්‍රීඩාවෙන් බයිට් කිහිපයක් ඉතිරි කර ගත හැකිය, නැතහොත් ඔබේ බහු-රේඛා වචන වඩාත් කියවිය හැකි වනු ඇත. අක්ෂර වින්‍යාසය නූලට ඇතුළත් කර ඇත්දැයි විමසිල්ලෙන් සිටින්න.

දිග 8:

()=>x=y;

මෙම ප්‍රකාශනය නිර්නාමික ශ්‍රිතයකි. එය Actionවටා ගමන් කළ හැකි ආකාරයේ ශ්‍රිතයක් නැවත ලබා දෙයි. නිර්නාමික ශ්‍රිත මඟින් ඒවා ප්‍රකාශයට පත් කරන ලද විෂය පථය උරුම වන අතර, එම විෂය පථයේ ඇති ඕනෑම දේශීය විචල්‍යයන් ඔවුන් යන ඕනෑම තැනකට ඔවුන් සමඟ ඇද ගනී.

දිග 9:

(a)=>a.p;

පරාමිතියක් සහ ප්‍රතිලාභ අගයක් භාවිතා කරන තවත් නිර්නාමික ශ්‍රිතයක් මෙන්න. ප්‍රකාශනය වර්ගයේ වස්තුවක් ලබා දෙයි Func(Func විසින්ම වර්ගය නැවත ලබා දෙයි a.p. ඔබ Funcලින්ක් සමඟ අතුරුමුහුණත් කිරීමට බොහෝ දේ භාවිතා කරනු ඇත.

දිග 10:

enm.Any();

ලින්ක් පිළිබඳ අපගේ පළමු හැඳින්වීම මෙයයි! ලින්ක් යනු ගණනය කළ හැකි ඕනෑම වස්තුවකට (IEnumerable අතුරුමුහුණත ක්‍රියාත්මක කිරීම) කැඳවිය හැකි දිගු කිරීමේ ක්‍රම සමූහයකි - වැනි Arrayසහ List. IEnumerable කම්මැලි ඇගයීම භාවිතා කරයි: එය එකවර එකතුවක් ගැන නොදැන, එක වරකට එක අයිතමයක් එකතු කරයි - එය අසීමිත විය හැකිය!

ඒ කොහෙද තියෙන්නේ Anyඑන - එය නැවත trueමේ ගණ්ය අවම වශයෙන් 1 වරකට අඩංගු නම්. සම්පූර්ණ දිග ගණනය කිරීමට වඩා හොඳය.

දිග 11:

var a=1.5f;

මෙම varඉඟි පද වර්ගය ස්වයංක්රීයව තීරණය කිරීම සඳහා සම්පාදකවරයා උපදෙස් a. aමෙම අවස්ථාවේ දී ටයිප් කරනු ලැබේ Single. කේත ගොල්ෆ් සඳහා එය ඉතා පහසුය, එය ඕනෑම වර්ගයක නමකට වඩා කෙටි බැවින් නිෂ්පාදන කේතයේ එය භාවිතා කිරීමට බොහෝ දෙනෙක් අකමැති වුවද.

දිග 15:

yield return 0;

මෙන්න ඔබට එතරම් හුරු නැති පිස්සු ප්‍රකාශයකි. IEnumerable උරුම කර ගැනීමෙන් වස්තූන් ගණන් කළ හැකි බව ඔබ දනී, නමුත් කාර්යයන් ගණන් කළ හැකි බව ඔබ දැන සිටියාද ? ආපසු එන වර්ගයක් සමඟ ශ්‍රිතයක් ප්‍රකාශ කරන්න IEnumerable, yield returnඔබට අවශ්‍ය වාර ගණනක් එය තබා ගන්න . ඔබ ශ්‍රිතයට ගණන් ගැනීමේ යන්ත්‍රයක් ලබා ගත් විට, සෑම ඇමතුමකටම GetNextවැඩසටහන මඟින් සියලු කේත ඊළඟට ක්‍රියාත්මක කර yield return, එම අගය නැවත ලබා දී නැවත එය ඉදිරියට ගෙන යන තෙක් විරාමයක් ලබා දෙනු ඇත. yield breakපුනරාවර්තනය අවසන් කිරීමට ඔබ භාවිතා කරයි.

දිග 16:

[Obsolete]int a;

මෙම ස්නිපටය ගුණාංගයක් පෙන්වයි. ගුණාංගයක් යනු ඔබේ කේතයේ ඕනෑම ප්‍රකාශයක් මත රැඳී සිටිය හැකි ආකාරයේ ටැගයකි. සමහරු ඔබ අමතන්නේ නම් යල්පැනගිය අනතුරු ඇඟවීමක් නිකුත් කරන මේ වගේ යම් යම් දේ කිරීමට සම්පාදකයාට උපදෙස් දෙයි a. දිගු කිරීමෙන් ඔබට ඔබේම දෑ සෑදිය Attributeහැකි අතර, පරාවර්තනය භාවිතයෙන් ඔබට ඒවා විමසිය හැකිය (පසුව වැඩි විස්තර, සමහර විට). ඔබට මෙටා වෙත ගොස් AttributeUsageගුණාංගය සමඟ කුමන ආකාරයේ ප්‍රකාශයක් භාවිතා කළ හැකිද යන්න සීමා කළ හැකිය .

දිග 17

c.Count(t=>t==3);

මෙන්න පහසු ගොල්ෆ් ක්‍රමයක්. දී ඇති Funcවූ ගණ්ය අංශුමාත්රයක් සිතියම් බව cසඳහා bool, එය අංග ගණන නැවත cවන ඒ සඳහා Funcප්රතිලාභ true. ලූපයක් ලිවීමට වඩා හොඳයි.

දිග 18:

foreach(T t in c);

මෙය එක් එක් ලූපයකි. ගණන් කළ නොහැකි දේවල් පිළිබඳ මේ සියලු කතා සමඟ, මෙය බෙහෙවින් අවශ්‍ය ව්‍යුහයකි. foreachසින්ටැක්ටික් සීනි වන අතර එය ගණනය කිරීම සඳහා cගණනය කළ හැකි (එය ගණන් කළ හැකි විය යුතුය) සහ ඒ හරහා වරකට එක් මූලද්‍රව්‍යයක් පුනරාවර්තනය tවේ. ඔබට එක් එක් මූලද්‍රව්‍යය වෙනස් කිරීමට හෝ පරීක්ෂා කිරීමට හැකිය, නමුත් එකතුවම වෙනස් කිරීම ගණනය කරන්නා අවලංගු කරයි.

දිග 19

c.Select(t=>t.a/2);

ක්‍රියාකාරී ක්‍රමලේඛන පංකා සඳහා මෙය ඔබගේ 'සිතියම' ශ්‍රිතයයි. තේරීම යනු ගණන් කළ නොහැකි සෑම අංගයකම අත්තනෝමතික පරිවර්තනයක් සිදු කිරීම සඳහා හොඳ සංක්ෂිප්ත ක්‍රමයකි Func. එය IEnumerable එකක් ලබා දෙන අතර එය ඔබ එය පරිවර්තනය කරන විට “පරිවර්තනය කළ” මූලද්‍රව්‍ය කෙළ ගසයි.

දිග 21

Console.Write("Hi!");

මෙම රේඛාව stdout සඳහා යම් පෙළක් ලියන අතර බොහෝ විට C # ගොල්ෆ් ක්‍රීඩා කිරීම සඳහා භාවිතා නොකිරීමට ප්‍රධාන හේතුවක් විය හැකිය!

දිග 23

typeof(T).GetMethods();

C # පරාවර්තනය නමින් ඉතා ප්‍රබල අංගයක් සඳහා සහය දක්වයි. ධාවන වේලාවේදී ඔබේ කේතයේ ව්‍යුහය පරීක්ෂා කිරීමට පරාවර්තනය ඔබට ඉඩ දෙයි. උදාහරණයක් ලෙස, මෙම ඇමතුම මඟින් නිශ්චිත වර්ගයේ සියලුම ක්‍රමවල පෙළක් ලබා දෙනු ඇත. ඔබට එම ක්‍රම පරීක්ෂා කළ හැකිය, ඒවා අමතන්න, හෝ ක්ෂේත්‍ර හා දේපලවල අගයන් වෙනස් කළ හැකිය. ගුණාංග (දිග 16 බලන්න) පරාවර්තනය සමඟ භාවිතා කිරීම සඳහා ඔබේ කේතයේ කොටස් ඇමිණීමට හොඳ ක්‍රමයකි.

දිග 25

from t in c select t.a/2;

එය SQL ද? සී # කේතයෙන්ද? තරමක් සමීපයි. මෙම ප්‍රකාශනය දිග 19 හි දැක්වෙන ආකාරයටම කරයි.

දිග 27

for(var l;;l=new object());

C # යනු කසළ එකතු කරන භාෂාවක් වන අතර එයින් අදහස් වන්නේ ඔබ වෙන් කරන ඕනෑම මතකයක් ( newයතුරු පදය භාවිතා කරමින් ) ස්වයංක්‍රීයව මුදා හැරිය හැකි අතර එය පිළිබඳ කිසිදු සඳහනක් නොමැති තාක් කල් ය. මම කිසි විටෙකත් නිර්මාණය කළ මතකය පැහැදිලිවම නිදහස් නොකළද මෙම කේතය සදහටම සතුටින් ක්‍රියාත්මක වේ. කසළ එකතු කිරීමට පිරිවැය ඇත, නමුත් - වැඩිදුර දැන ගැනීමට වෙබය සොයන්න.

දිග 29

var e=Enumerable.Range(0,99);

Enumerable.Rangeගොල්ෆ් ක්‍රීඩාවක් විය හැකි ය. එය ගණනය කළ හැකි ව්‍යුහයක් ආපසු ලබා දෙන අතර එක් එක් සංඛ්‍යා නිශ්චිතව දක්වා ඇති පරාසය තුළ ලබා දෙනු ඇත. දෙවන පරාමිතිය ගණනය කිරීමක් මිස දර්ශකයක් නොවේ.

දිග 31

public int pr{get;private set;}

මෙන්න, අපට සරල 'දේපලක්', ඕඕපී අංගයක් සහ සී # හි තවත් ලකුණක් පෙන්විය හැකිය. ඔබ කවදා හෝ ජාවා භාවිතා කර ඇත්නම්, බොහෝ විට ඔබ ක්ෂේත්‍රයක් සඳහා 'ලබා ගැනීම' සහ 'සැකසීම' ක්‍රම කර ඇති අතර ඒවායේ ප්‍රවේශ්‍යතාවය වෙන් කිරීම හෝ කේතය වෙනස් වූ විට එය ක්‍රියාත්මක කිරීම. හොඳයි, C # මඟින් ඔබට එම කේතය ක්ෂේත්‍රයේ ඉහළින්ම ප්‍රකාශ කිරීමට ඉඩ ලබා දෙන අතර ලබා ගැනීම සහ සැකසීම සඳහා වෙනම ප්‍රවේශ වෙනස් කිරීම් සකසන්න. මෙම විශේෂිත ස්නිපටය ස්වයංක්‍රීයව පෙරනිමි ගෙටරය සහ සැකසුම නිර්මාණය කරයි, නමුත් සැකසුම පුද්ගලික කරයි.

දිග 32

public static void m(this T o){}

මෙම ස්නිපටය මඟින් API නිර්මාණය සඳහා සුදුසු C # අංගයක් පෙන්වයි. thisස්ථිතික ක්‍රමයක පළමු පරාමිතියට විකරණකාරකය යෙදීමෙන් එම ක්‍රමය “දිගුව” ක්‍රමයක් බවට පත්වේ. මෙය ප්‍රකාශයට පත් T.mකළ පසු, ටී වර්ගයේ ඕනෑම වස්තුවකට එය ඇත්ත වශයෙන්ම ටී ක්‍රමවේදයක් ලෙස හැඳින්විය හැකිය. මෙය දැනට පවතින ඕනෑම පන්තියකට නව ක්‍රියාකාරීත්වයක් එක් කිරීමට භාවිතා කළ හැකිය.

දිග 38

int f(int a,ref int b,out int c){c=0;}

මෙම ක්‍රමය මඟින් ඔබට C # හි තිබිය හැකි විවිධ පරාමිති සම්මතයන් පෙන්වයි. වෙනස් නොකළ පරාමිතීන් අගය අනුව සම්මත වේ. පෙර සැකසූ පරාමිතීන් refයොමු කිරීම මඟින් සම්මත කරනු ලැබේ: ඔබට ඒවාට සම්පූර්ණයෙන්ම නව වස්තුවක් පැවරිය හැකි අතර ඔවුන් එය ක්‍රමයෙන් පිටතට ගෙන යනු ඇත. පෙර සැකසූ පරාමිතීන් outඅතිරේක ප්‍රතිලාභ අගයන් හා සමාන ය: ඔබට ඒවා ක්‍රමයේ අගයක් පැවරිය යුතු අතර ඒවා ref පරාමිතීන් මෙන් ආපසු ගෙන යනු ලැබේ.

දිග 42

Console.Write("It is \{DateTime.Now()}.");

නව C # 6 ප්‍රමිතියට ඔබට එකලස් කරන ලද නූල් ප්‍රතිදානය කිරීමට සිදු වූ විට, අක්ෂර අන්තර් මැදිහත්වීමක් භාවිතා කර ඔබට අක්ෂර කිහිපයක් ඉතිරි කළ හැකිය. මෙම අංගය මඟින් ඕනෑම ප්‍රකාශනයක් වචනාර්ථයෙන් ඇතුළත වක්‍ර වරහන් වලින් ලිවීමට ඉඩ ලබා දෙන අතර, ධාවන වේලාවේදී එම ප්‍රකාශනවල අගයන් සමඟ නූල ස්වයංක්‍රීයව එකලස් වේ.

දිග 48

IEnumerable f(){for(int a=0;;)yield return a++;}

සැබෑ අරමුණක් ඇතිව යමක් කිරීමට දැන් ප්‍රමාණවත් චරිත! මෙම ක්‍රමය අප ඉහත ගවේෂණය කළ අදහස් කිහිපයක් භාවිතා කරයි, එය 0 සිට ඇරඹෙන පූර්ණ සංඛ්‍යා එකින් එක නැවත ලබා දෙනු ඇත. C # ගණන් කළ හැකි දේ සමඟ කම්මැලි ඇගයීම භාවිතා කරන බව මතක තබා ගන්න, එබැවින් අසීමිත අනුක්‍රමයක් පරිපූර්ණ ලෙස වලංගු වේ - ඔබට හැකිය ඔබට අවශ්‍ය තරම් අනුක්‍රමය නැවත කියවා ඕනෑම වේලාවක පුපුරා යන්න.

දිග 56

int p{get{return mP;}set{mP=Math.Max(value,0);}};int mP;

'දේපලකට' තවත් උදාහරණයක් මෙන්න (ස්නිපෙට් 31 බලන්න). මෙන්න, මම ඇත්තටම සඳහා විවිධ කේතය කොටස්වලින් අර්ථ getහා setපෙර ලෙස ස්වයංක්රීය අය භාවිතා කරනවාට වඩා. විචල්‍යයකට පවරා ඇති අගය වලංගු කිරීම සඳහා ඔබට දේපලක් භාවිතා කළ හැකි ආකාරය මෙම උදාහරණයෙන් දැක්වේ - මෙහි අගය 0 ට වඩා අඩු වීමට ඉඩ නොදේ. ගුණාංගවල වෙනත් හොඳ භාවිතයන් අතර වටිනාකමක් වෙනස් වූ විට සිදුවීමක් දැනුම් දීම හෝ හැඹිලි අගයන් නැවත ගොඩනැඟීම ඇතුළත් වේ. එය මේ මත පදනම් විය හැකිය.

දිග 65

int v;public static implicit operator int(Program o){return o.v;}

මෙම අංගය ව්‍යංග වාත්තු ලෙස හැඳින්වේ. එය එක්තරා විස්තාරණ ක්‍රමයක් හා සමාන වන අතර එය නිශ්චිත පන්තියක ක්‍රියාත්මක වන ස්ථිතික කේතය වේ (ස්නිපෙට් 32 බලන්න). කෙසේ වෙතත්, ව්‍යංග වාත්තු එය ඇමතීමෙන් භාවිතා නොවේ - එය හුදෙක් භාවිතා කරනුයේ Programවස්තුවක් පූර්ණ සංඛ්‍යාවක් ලෙස සැලකීමෙනි (උදා int i=new Program()). ඔබ මෙය කරන විට, වස්තුව නිශ්ශබ්දව ඔබ භාවිතා කරන වර්ගයට පරිවර්තනය කරනු ඇත, එය ව්‍යාජ වාත්තු කේතය මත පදනම් වේ. හොඳම පුහුණුව පවසන්නේ මෙය සිදු කිරීම පරිවර්තනයේ ප්‍රති information ලයක් ලෙස කිසිදු තොරතුරක් නැති වූ විට පමණක් බවයි.


1
මෙම චරිත සමඟ ඔබට කුමක් කළ හැකිදැයි බලමු ... ;-)
ආඩම්බර හස්කලර්

9
මම කියන්නේ එය සී වලට වඩා ජාවා වලට වඩා සමීප බවයි, ඇත්ත වශයෙන්ම
ආඩම්බර හස්කලර්

සටහන් කර ඇත. මම හිතන්නේ අපිට ලින්ක් ටිකක් කරන්න තරම් ඇති - අද රෑ එනවා!
BMac

පොදු ස්ථිතික ව්‍යංග ක්‍රියාකරු int (MyClass o) {ආපසු o.objVal;} // 65. මෙම කේතය සමඟ, මෙම රේඛාව වලංගු වේ: MyClass o1 = නව MyClass (10); int o2 = o1; // o2 දැන් 10 යි. msdn.microsoft.com/en-us/library/85w54y0a.aspx
Zukki

කරුණාකර තවත්
ස්නිපෙට්

98

ජාවා


දිග 44 ස්නිපටය

Object a=System.out.append("Hello, World!");

අමතර පිටපත් Hello, World!STDOUT කිරීමට.

දිග 43 ස්නිපටය

float[][][][][]a=new float[5][3][7][2][10];

aඅරා 10 ක් අඩංගු වන අතර එක් එක් අරා 2 ක් අඩංගු වන අතර එක් එක් අරා 7 ක් අඩංගු වන අතර එක් එක් අරා 3 බැගින් වන අතර ඒවා 5 බැගින් වේ float.

දිග 42 ස්නිපටය

interface A{static void main(String[]a){}}

සම්පූර්ණ වැඩසටහනක්. සෑම දෙයක්ම interfaceසහජයෙන්ම ඇති හෙයින් public, අපට publicප්‍රධාන ක්‍රමයෙන් වචනය මඟ හැරිය හැක .

දිග 36 ස්නිපටය

class A{class B extends A{B.B.B b;}}

Aඅභ්‍යන්තර පන්තියක් Bඇත. මෙයින් අදහස් කරන්නේ අපට විචල්‍ය වර්ගයක් ප්‍රකාශ කළ හැකි බවයි A.B.

නමුත් Bඋප පංතියකි A, එයින් අදහස් කරන්නේ එයට සියලු ක්‍රම, ක්ෂේත්‍ර සහ අභ්‍යන්තර පංති ඇති Aබවයි. මේ අනුව, අපට වර්ගය B.Bද යොමු කළ හැකිය .

මෙම කේතය, අපි තවත් පියවරක් ඉදිරියට මෙම ගන්න, සහ ලබා Bවර්ගයේ නිදසුනක් විචල්ය B.B.B.

සදාචාරය: SO පිළිබඳ උණුසුම් ප්‍රශ්න අනුගමනය කිරීමෙන් ඔබට සිත්ගන්නාසුළු, අර්ථ විරහිත, ශිල්පීය ක්‍රම රාශියක් ඉගැන්විය හැකිය.

දිග 35 ස්නිපටය

l.stream().map("a"::equals).count()

නම් lනූල් ලැයිස්තුවක් වන අතර, මේ සඳහා ඔවුන් කොපමණ සමාන අපට පවසනවා "a".

දිග 34 ස්නිපටය

public static void main(String[]a)

වැඩසටහනේ ප්‍රධාන ක්‍රමයේ අත්සන. තවත් අක්ෂර 11 ක් පමණක් ඇති අතර අපට සම්පූර්ණ වැඩසටහනක් කළ හැකිය!

දිග 33 ස්නිපටය

enum D {NORTH, EAST, SOUTH, WEST}

NORTH, EAST, SOUTH, සහ WESTවර්ගයේ සියලු නියත ය D.

දිග 32 ස්නිපටය

Files.readAllBytes("hello.txt");

සම්පූර්ණ ගොනුවක් කියවන byte[]අතර අන්තර්ගතය නැවත ලබා දෙයි.

දිග 31 ස්නිපටය

new String(new char[]{'h','i'})

සමාන වේ "hi". "යතුර කැඩී ඇත්නම් ප්‍රයෝජනවත් වේ.

දිග 30 ස්නිපටය

new JFrame().setVisible(true);

ඔබට වෙනත් සංරචක තැබිය හැකි නව දෘශ්‍ය රාමුවක් සාදයි.

දිග 29 ස්නිපටය

throws ClassNotFoundException

මෙය හඳුන්වන සෑම ක්‍රමයක්ම try- catchවාරණයක් භාවිතා කිරීමට බල කරයි , නැතහොත් දෝෂය තොගය ඉහළට ගෙනයන්න. පරීක්ෂා කරන ලද ව්‍යතිරේක යනු ජාවා නිර්මාණකරුවන්ගේ වඩාත් මතභේදාත්මක තීරණ වලින් එකකි.

දිග 28 ස්නිපටය

int f(int x){return f(x-1);}

මෙම ශ්‍රිතය සදහටම ක්‍රියාත්මක නොවේ; ඇත්ත වශයෙන්ම, සාමාන්‍ය පරිගණකයක තත්පරයකට අඩු කාලයක් ගතවේ. ස්තූතියි, ගොඩගැසීම්.

දිග 27 ස්නිපටය

Object a=new String[]{"a"};

නව නූල් පෙළක් නිර්මාණය කරයි.

දිග 26 ස්නිපටය

Object.class.newInstance()

නව එකක් නිර්මාණය කරයි Object.

දිග 25 ස්නිපටය

((Supplier)()->-~0).get()

දෘඩ කේතීකරණ නියතයන් වළක්වා ගැනීම වඩාත් සුදුසුය. මෙය 1හැර වෙනත් නියතයන් භාවිතා නොකර අගය ලබා ගැනීමේ වස්තු-නැඹුරු ක්‍රමයකි 0.

දිග 24 ස්නිපටය

(Function<Long,?>)x->x+1

අනුප්රාප්තික ක්රියාකාරිත්වය.

දිග 23 ස්නිපටය

l.removeIf(x->x%10==0);

නම් lපූර්ණ සංඛ්යා ලැයිස්තුවක් වන අතර, මේ සියල්ල අගයන් 10 බෙදිය ඉවත් කරයි.

දිග 22 ස්නිපටය

int i=(new int[7])[5];

පූර්ණ සංඛ්‍යා හතක නව පෙළක් නිර්මාණය කරන අතර පස්වන අංගය ලබා ගනී.

දිග 21 ස්නිපටය

Arrays.asList(2L,"a")

මෙම අංග සමඟ අරා ලැයිස්තුවක් සාදයි.

දිග 20 ස්නිපටය

System.out.print(s);

මුද්රණ s.

දිග 19 ස්නිපටය

import java.util.*;

වැනි පන්ති සංක්ෂිප්ත භාවිතය අවසර දෙන්න List, Map, Scanner, Timer, සහ Random.

දිග 18 ස්නිපටය

Math.addExact(x,y)

පූර්ණ සංඛ්යා දෙකක් එකතු xසහ y. පිටාර ගැලීම සිදුවුවහොත්, ක්‍රමය වැරදි පිළිතුරක් දෙනවාට වඩා ව්‍යතිරේකයක් විසි කරයි.

දිග 17 ස්නිපටය

Double.MIN_NORMAL

වර්ගයෙහි කුඩාම ධනාත්මක අගය double, මෙහි වැදගත්කමෙහි ප්‍රමුඛ කොටස 0 වේ.

දිග 16 ස්නිපටය

System.in.read()

කොන්සෝලය වෙතින් තනි අක්ෂරයක් කියවයි.

දිග 15 ස්නිපටය

Long.reverse(x)

ද්විමය නිරූපණයෙහි බිටු ආපසු හරවයි x.

දිග 14 ස්නිපටය

int x=050+120;

xආරම්භ වන ඕනෑම දෙයක් 0අෂ්ටක ලෙස සලකන බැවින් දැන් 160 කි.

දිග 13 ස්නිපටය

private C(){}

පුද්ගලික ඉදිකිරීම්කරුවෙකු වෙනත් පංති එය ස්ථාපනය කිරීමෙන් වළක්වයි. මෙම රටාව Systemසහ Mathපන්ති විසින් භාවිතා කරනු ලැබේ . සිංගල්ටන් රටාව බලාත්මක කිරීම සඳහා පුද්ගලික ඉදිකිරීම්කරුවෙකු ද භාවිතා කළ හැකිය.

දිග 12 ස්නිපටය

static class

එය විසඳුමක් - අභ්යන්තර පන්ති නිර්මාණය වූ කවරෙ පිටත පන්තිය තොරව අවසර දෙන්න ප්රශ්නය මුහුණ විසින් බොහෝ වැඩසටහන්කරුවන් .

දිග 11 ස්නිපටය

throw null;

එය විසි කිරීම බොහෝ විට අවශ්‍ය වේ NullPointerException, නමුත් එය ද තරමක් නරක ය. මෙය වඩාත් සරල විකල්පයකි.

දිග 10 ස්නිපටය

int[]a,b[]

විචල්යයන් දෙකක් අර්ථ දක්වයි: aසහ b. aවර්ගයට අයත් වන int[]අතර bඑය වර්ගයට අයත් int[][]වේ.

දිග 9 ස්නිපටය

switch(x)

වටිනාකම අනුව ස්ථානයකට යයි x.

දිග 8 ස්නිපටය

break a;

ලේබල් කර ඇති බ්ලොක් එකෙන් කැඩී යයි a.

දිග 7 ස්නිපටය

goto x;

මෙම gotoමූල පදය දී, C, C ++, සහ ජාවා වෙන්කර ඇත. නම් xවූ ලේබලය, එසේ නම් මෙම කේතය සුදුසු ලේබලය වැඩසටහන යවයි - C හා C ++ වල. නමුත් එය ජාවා, එය අභිරහසක් අවුලුවයි RuntimeException. ඇත්ත වශයෙන්ම, gotoජාවා හි මූල පදය භාවිතා කිරීමට කිසිසේත් හැකියාවක් නැත .

දිග 6 ස්නිපටය

\u003b

ප්‍රකාශයක් අවසන් කරයි. ජාවා අමුතුයි .

දිග 5 ස්නිපටය

a-=-a

යුගල aඑහි නිශේධනය අඩු විසින්.

දිග 4 ස්නිපටය

a&=b

වටිනාකම සකසයි aමෙම bitwise කිරීමට හා aහා b.

දිග 3 ස්නිපටය

...

ඕනෑම තර්ක ගණනක්, අරාවකට ඒකාබද්ධ වේ.

දිග 2 ස්නිපටය

<>

ඔබ බොහෝ විට අදහස් කරන සාමාන්‍ය වර්ගය කුමක්දැයි සොයා ගැනීමට සම්පාදකයාට ඉඩ දෙන්න. ඉතා ජාවා වැනි.

දිග 1 ස්නිපටය

@

ක්‍රම සහ පන්ති පිළිබඳ අමතර තොරතුරු පෙන්වීමට ඉඩ දීම සඳහා ව්‍යාඛ්‍යාවක් දක්වයි.

ෆැක්ටොයිඩ්

ජාවා හි, අසීමිත ලූප සමහර විට සම්පාදක දෝෂ ඇති කරයි. නිදසුනක් ලෙස, while(true);ක්‍රමයෙන් පිටවීමකින් තොරව ලූපය අවසන් කළ නොහැක, එබැවින් ඉන් පසුව ඇති ඕනෑම කේතයක් “ළඟා විය නොහැකි ප්‍රකාශයක්” දෝෂයක් අවුලුවනු ඇත. @ ඔප්ටිමයිසර් පෙන්වා දුන් පරිදි, මේ ආකාරයෙන් අල්ලා ගනු ලබන්නේ අසීමිත ලූප කිහිපයක් පමණි.


5
ජාවා වලදී, අසීමිත ලූප සම්පාදක දෝෂයක් ඇති නොකරයි. එය ඔබගේ IDE මඟින් හඳුනාගෙන ඒවා දෝෂයක් ඇති කරයි. ජාවා හුදෙක් ළඟා විය නොහැකි ප්‍රකාශ පිළිබඳ සංකල්පයක් ඇත, එබැවින් while(true);ඔබේ කේතයේ වැනි යමක් තිබේ නම් , එම පේළියට පසුව තබන ඕනෑම දෙයක් ළඟා විය නොහැකි ප්‍රකාශයේ සංයුක්ත දෝෂයක් ඇති කරයි. එවැනි ප්‍රකාශ හඳුනා ගැනීම පිටුපස ඇති තර්කනය ඉතා දැඩි බැවින් එය සියලු ආකාර අසීමිත ලූපයන් කිසිසේත් හඳුනා නොගනී
Optimizer

4
ඔබ දැන් ඡන්දය පාවිච්චි කළා, මම හිතන්නේ මෙයින් අදහස් කරන්නේ ඔබට ස්නිපටයක් ඉවත් කිරීමට සිදුවනු ඇති බවයි! ;) (අවාසිය වූයේ "ජාවා අමුතුයි")
සයිමන් ෆෝස්බර්ග්

1
# 36 ස්නිපටය පුනරාවර්තන වන අතර එය දින නියමයක් නොමැතිව දීර් can කළ හැකිය: class A{class B extends A{B.B.B.B.B.B.B b;}}තවමත් සම්පාදනය කරයි.
නැටික්ස්

3
සම්පූර්ණ වැඩසටහනක් කිරීමට ඔබට උදව් කිරීමට
ඉහළට

2
But it Java, [goto] triggers a mysterious RuntimeExceptionවැරදි. gotoසම්පාදනය නොකරයි.
user8397947

93

පයිතන්

දැන් ඔබේ පහසුව සඳහා නවතම දේ සමඟ ආරම්භ කරන්න! මුල්ම සිට ආරම්භ වන දිග 30 දක්වා කියවීමට, සංශෝධන ඉතිහාසය වෙත යන්න.

යමෙකුට යෝජනා තිබේ නම්, අදහස් දැක්වීමට නිදහස් වන්න.

දිග 52:

i=0
while s[i-n:]:print(' '*n+s)[i:n+i];i+=1;i**7**7

ව්‍යාජ මාර්කියු පෙළ අභියෝගයට මගේ පිවිසුමෙන් ගත් විට . sසහ nවේලාවට පෙර නූලකට සහ නිඛිලයකට සැකසිය යුතුය. මා භාවිතා කළ නිදහස් පයිතන් 2 පරිවර්තකය තුළ එය සැබවින්ම ක්‍රියා නොකරයි, එබැවින් මම වරහන් වර්‍ග එක් කළෙමි (' '*n+s)[i:n+i], එය මෙහි පයිතන් 3 පරිවර්තකය තුළ ක්‍රියාත්මක වන බව ඔබට පෙනෙනු ඇත .

දිග 43:

#-*-coding:rot13-*-
cevag h"Una fubg svefg"

පයිතන්හිදී ඔබට විශේෂිත කෝඩෙක් සමඟ ප්‍රභවය කේතනය කළ හැකිය. Rot13 හි මූලාශ්‍රය ලිවිය හැකි ආකාරය මෙයින් පෙන්නුම් කෙරේ. සාමාන්‍ය වාක්‍ය ඛණ්ඩය මෙයයි : # -*- coding: <codec-name-goes-here> -*-.

මෙන්න එය පරිවර්තනය කර ඇත:

#-*-coding:rot13-*-
print u"Han shot first"

මෙම uපහත සඳහන් සංගීත ප්රායෝගික වූ යුනිකෝඩ් string බව නියම කරනු ලබයි. ඔබේ නූල් ද Rot13 හි තිබිය යුතු නම් මෙය අවශ්‍ය වේ, එසේ නොමැතිනම් සංකේතාංකනය තිබියදීත් ප්‍රභවයේ ඇති සෑම නූලක්ම පහසුවෙන් කියවිය හැකිය. විකල්පයක් ලෙස, ඔබට .encode("Rot13")සෑම නූලකටම පසුව භාවිතා කළ හැකිය (මේ මත Rot13 භාවිතා කිරීමටද අමතක නොකරන්න.) මෙම ලිපියට අනුව , සමහර විකල්ප කේතීකරණ “base64 ″,“ uuencode ”,“ zlib ”හෝ“ bz2 are වේ.

දිග 33:

import cmath
print cmath.sqrt(-1)

මෙය සංකීර්ණ (මන inary කල්පිත) අංක සඳහා පයිතන්ගේ මොඩියුලය වේ . මෙය මුද්‍රණය කරන්නේ 1j, පයිතන් ඉංජිනේරු ප්‍රමිතීන්ට අනුකූල වන අතර මන inary jකල්පිත ඒකකය ලෙස භාවිතා iකරන හෙයිනි, මම කැමති වුවත් , එය ගණිතයේ බහුලව භාවිතා වන අතර, චතුරස්රයන් සඳහා භාවිතා කිරීමට jසහ kඊට අමතරව , නමුත් මම කණගාටු වෙමි. දෝෂ / වෙනස් කිරීමේ අනුපිළිවෙල මෙතැනින් කියවන්න (එය වෙනස් නොවේ).i

දිග 30:

f=lambda n:n*f(n-1)if n else 1

දැන් අපි පුනරාවර්තනය සහ ත්‍රිකෝණය if-else භාවිතා කරමින් අපේම සාධකීය ශ්‍රිතය අර්ථ දක්වමු! මා දන්නා පරිදි, මෙය පයිතන් වලට ලැබෙන තරමට ගොල්ෆ් වේ. එය ද මේ ආකාරයෙන් ලිවිය හැකිය f=lambda n:n and f(n-1)*n or 1:, පයිතන්ගේ බූලියන් ක්‍රියාකරුවන් යුවළක් පෙන්වීම (සහ අක්ෂර 30 කින් ද සිදු කෙරේ.) lambdaවාක්‍ය ඛණ්ඩය පිළිබඳ තොරතුරු සඳහා දිග 15 ස්නිපටය බලන්න .

දිග 29:

import math
math.factorial(7)

7 හි සාධකය සොයා, ආපසු 5040.

දිග 25:

import math
print math.pi

පයිතන්ගේ ගණිත මොඩියුලය බොහෝ ප්‍රයෝජනවත් කාර්යයන් සහ නියතයන් සපයයි. මෙන්න PI. ප්‍රතිලාභ 3.14159265359. (ඉහත කේතයේ, මම නව රේඛාව චරිතයක් ලෙස ගණන් ගතිමි.)

දිග 24:

f=lambda y:lambda x:x**y

මෙය වසා දැමීමේ උදාහරණයකි. ඇමතීම cube = f(3)මඟින් cub නක ශ්‍රිතයක් වන අතර එය print cube(24)මුද්‍රණය සමඟ කැඳවිය හැකිය 13824.

දිග 19:

print"Hello World!"

අවසාන වශයෙන්, මූලික නිමැවුම් මුද්‍රණය කිරීමට ප්‍රමාණවත් ඉඩක්! මෙහි අවකාශය අවශ්‍ය නොවේ, මන්ද උපුටා දැක්වීම් සහ වරහන් ද පරිසීමක වේ. මෙය ක්‍රියාත්මක වන්නේ පයිතන් 2 හි පමණි, මන්ද පයිතන් 3 printශ්‍රිතය වෙනත් ඕනෑම ශ්‍රිතයක් ලෙස හැඳින්විය හැක. පයිතන් 3 හි භාවිතා කරන්න print("Hello World!"). පයිතන් 2 සහ 3 අතර මුද්‍රණ ක්‍රියාකාරිත්වය සහ වෙනස පිළිබඳ වැඩි විස්තර සඳහා, පයිතන් 3.0 හි අළුත් දේ බලන්න .

දිග 16:

[x*3 for x in l]

නැවත වරක්, උපකල්පනය lකරන්න ලැයිස්තුවක් හෝ නූල් හෝ උත්පාදක යන්ත්රය වැනි වෙනත් නැවත කළ හැකි වස්තුවකි. මෙම ප්‍රකාශය ලැයිස්තු අවබෝධය ලෙස හැඳින්වේ . එය ලූප ව්‍යුහය සඳහා ප්‍රමිතිය භාවිතා කිරීමට වඩා කෙටි වේ. මෙන්න, එය සියලු සංඛ්‍යා 3 කින් ගුණ කළ ලැයිස්තුවක් ලබා දෙයි. එසේම, නූල් ගුණ කළ හැකිය! එබැවින් ලැයිස්තුවේ ඇති ඕනෑම නූලක් එම වාර ගණන එකතු කරනු ලැබේ.

දිග 15:

import this #:)

මෙය සැබවින්ම දිග 11 ස්නිපටයක් වන නමුත් පයිතන්ගේ (නියමයි) පාස්කු බිත්තරය ප්‍රදර්ශනය කිරීමට මට අමතක වී ඇති බව මට වැටහුණි ! මෙම මොඩියුලය ආයාත කිරීම පයිතන් සෙන් (ෆැක්ටොයිඩ් බලන්න.) සිත්ගන්නා කරුණ: මොඩියුලය this.pyරොට් 13 හි කේතනය කර ඇති අතර, එය පසුව දර්ශනය වනු ඇත.

දිග 14:

lambda x:x**.5

මෙය lambdaවචනයේ පරිසමාප්ත අර්ථයෙන්ම පයිතන්ගේ සින්ටැක්ස් භාවිතා කරමින් වර්ග මූල ශ්‍රිතයක් අර්ථ දක්වයි . පයිතන්හි ක්‍රියාකාරී වචනාර්ථවල අඩංගු විය හැක්කේ ප්‍රකාශන මිස ප්‍රකාශ නොවේ. මෙම ලැම්ඩා, විචල්ය පවරා හැකි විය උත්සවයකට කිරීමට සමත්, හෝ සමග රේඛාව ක්රියාත්මක (lambda x:x**.5)(9)වන අතර ප්රතිලාභ 3.0. වර්ග මූලයක් සඳහා on ාතකයන් භාවිතා sqrtකිරීම mathමොඩියුලයේ ශ්‍රිතය ආනයනය කිරීමට විකල්පයකි .

දිග 13:

1 if x else 0

මෙය ක්‍රියාකරු නම් පයිතන්ගේ ත්‍රිත්වයට උදාහරණයකි. බූලියන් මෙහෙයුම් සමඟ කෝඩරයන් අතින් ක්‍රියාත්මක කිරීමෙන් අධෛර්යමත් කිරීම සඳහා මෙය පයිතන් 2.5 හි එකතු කරන ලදි. මෙන්න, තක්සේරු කරන්නේ නම් ආපසු යනු ඇත , එසේ 1නොමැතිනම් ආපසු xලබා දෙනු ලැබේ.True0

දිග 12:

s=input(">")

මෙය >කඩිනම් පෙළ සඳහා මුද්‍රණය වන අතර පරිශීලකයාට අගයක් ඇතුළත් කිරීමට ඉඩ දෙයි. පයිතන් 2 ඇතුළු කළ ඕනෑම අගයක් අර්ථ නිරූපණය කරයි, එබැවින් ඕනෑම නූලකට උපුටා දැක්වීම් අවශ්‍ය වේ. පයිතන් 3 මෙය වෙනස් කළේය, එවිට ඇතුළත් කළ ආදානය ස්වයංක්‍රීයව අර්ථ නිරූපණය නොවේ. පයිතන් 2 හි අර්ථ නිරූපණය නොකර ආදානය ඇතුළත් කිරීමට, භාවිතා කරන්න raw_input(). පයිතන් 2 හි, input()සමාන වේ eval(raw_input()).

දිග 11:

eval("2e3")

2e32 x 10³ පාවෙන සඳහා විද්‍යාත්මක අංකනය වේ. මෙම evalකාර්යය පරිවර්ථනය හා ප්රකාශනයක් ලෙස ඕනෑම සංගීත පරීක්ෂා කර බැලීමයි. මෙම අවස්ථාවේ දී, එය වචනානුසාරයෙන් 2e3හෝ භාවිතා කිරීමේ ප්‍රති result ලයම float("2e3")ඇත. එය නැවත පැමිණේ 2000.0.

දිග 10:

range(013)

මෙම ශ්‍රිතය පූර්ණ සංඛ්‍යා ලැයිස්තුවක් සිට 0අෂ්ටක අගයට ලබා දෙයි 013, එය 11(සුවිශේෂී), එනම් ලැයිස්තුව වනු ඇත [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]. sliceඅප කලින් සමාලෝචනය කළ ශ්‍රිතයට සමාන පරාමිතීන් තුනක් දක්වා ශ්‍රිතය ගනී : range(start, stop[, step]). වෙනස වන්නේ, එක් පරාමිතියක් සමඟ පමණක් පරාමිතිය නැවතුම් අගය නියෝජනය කරයි.

පයිතන් 3.x ට සමාන කිසිවක් නොමැති බව සලකන්න. එය rangeසමාන ය, නමුත් ඇත්ත වශයෙන්ම පයිතන් 2 ට සමාන ය, xrangeලැයිස්තුවක් වෙනුවට උත්පාදක වස්තුවක් ආපසු ලබා දේ.

දිග 9:

a,b = b,a

බහු පැවරුම්. මෙය සරල නමුත් අලංකාර අංගයක් වන අතර එකවර බහුවිධ අගයන් පැවරීමට ඔබට ඉඩ සලසයි. සපයා ඇති ඇබිත්ත දී, එය හුවමාරු ගිවිසුම් aහා b. ඇගයීමේ අනුපිළිවෙල ගැන කුමක් කිව හැකිද? පැවරුම් කිසිවක් කිරීමට පෙර පැවරුම් ක්‍රියාකරුගේ දකුණට ඇති සියලුම ප්‍රකාශන ඇගයීමට ලක් කෙරේ. තාවකාලික විචල්‍යයකට අතරමැදි පැවරුමක් අවශ්‍ය වන බොහෝ භාෂාවන්ට මෙය පහර දෙයි.

දිග 8:

#comment

ඔයා දන්නවද ඒක මොකක්ද කියලා ... ඉන්න, එහෙම නේද? කේත රේඛාවක් විස්තර කිරීම සඳහා අත්තනෝමතික පෙළ ටයිප් කිරීමට ඔබට ඉඩ සලසන දේවල් තේරුම් ගැනීම පහසු කරවන බව ඔබ දන්නවාද? නොමැත? ඔහ්, හරි ...

දිග 7:

l[::-1]

නැවතත් lලැයිස්තුවක් යැයි උපකල්පනය කළහොත්, මෙය ලැයිස්තුව ප්‍රතිලෝම අනුපිළිවෙලට ලබා දෙනු ඇත. තෙවන තර්කය පියවරේ විශාලත්වය දක්වයි. තර්ක තුනම negative ණ අගයන් විය හැකි බැවින්, negative ණ පියවරේ විශාලත්වය යනු ප්‍රතිලෝම අනුපිළිවෙලින් නැවත යෙදීමයි. හිස් පළමු හා දෙවන තර්ක වලින් පෙනී යන්නේ අප සමස්ත ලැයිස්තුවටම වඩා වෙනස් බවයි.

තවත් සිත්ගන්නාසුලු ඉදිකිරීම් කිහිපයක් භාවිතා කිරීම ආරම්භ කළ හැකි ස්ථානයට අපි පැමිණෙමු!

දිග 6:

l[-6:]

මෙය පෙති මෙහෙයුමක් ලෙස හැඳින්වේ . නම් lලැයිස්තුවක් වන අතර, මෙම අවසාන හයක් අඩංගු නව ලැයිස්තුව ආපසු lලැයිස්තුවක් ලෙස. -6ආරම්භක දර්ශකය (අවසානයේ සිට 6) නිරූපණය කරන අතර, මහා බඩවැලේ අර්ථය වන්නේ ඉන් පසුව අවසන් දර්ශකය තෙක් (අපි හිස්ව තබා ඇති අතර අවසානය දක්වා) යන්නයි. අපගේ ලැයිස්තුවේ 1 සිට 10 දක්වා අංක අඩංගු නම්, මෙය නැවත පැමිණේ [5, 6, 7, 8, 9, 10].

දිග 5:

1<x<5

පයිතන්ගේ විශිෂ්ට ලක්ෂණ වලින් එකක් වන්නේ සැසඳීමේ ක්‍රියාකරුවන්ට දම්වැල් දැමීමට ඔබට ඉඩ දීමයි. වෙනත් බොහෝ භාෂාවල මෙය ටයිප් කරනු 1 < x && x < 5ඇත. ඔබ බහු සැසඳීම් සලකා බලන විට එය වඩාත් හොඳ 1 < x < y < 5වේ : පරිපූර්ණ ලෙස වලංගු වේ!

දිග 4:

0256

ප්‍රමුඛ ශුන්‍යයක් සහිත පූර්ණ සංඛ්‍යාවක් යනු අෂ්ටක අගයකි. කේත අපැහැදිලි කිරීම සඳහා මෙය කදිම උපක්‍රමයකි. මෙය දශම අගය ලබා දෙයි 174. පයිතන් 3.x හි, අෂ්ටක අගය ලෙස ලියා ඇත 0o256.

දිග 3:

`3`

පසුතලවල ප්‍රකාශනයක් වට කිරීම භාවිතා කිරීම හා සමාන වේ repr(), එමඟින් වස්තුවක නූල් නිරූපණය නැවත ලබා දේ. ශ්‍රිතය තර්කය ලෙස evalශ්‍රිතයට සම්මත කළ විට එය මුල් වස්තුව ආපසු ලබා දෙන ආකාරයට ශ්‍රිතය නැවත ලබා දීමට උත්සාහ කරයි. එය නොවන භාවිතා සමාන str()ප්රතිඵල ඇතැම් විට එම වුවත්. මෙම ආදානය සඳහා, '3'අවස්ථා දෙකේදීම ආපසු ලබා දෙනු ලැබේ. කේත ගොල්ෆ් සඳහා මෙය මගේ ප්‍රියතම එකක්!

පයිතන් 2 හි පමණක් ක්‍රියා කරයි!

දිග 2:

[]

හිස් ලැයිස්තුවක්.

දිග 1:

_

අවධාරනය කරන අක්‍ෂරය බොහෝ දුරට භාවිතා කරන විසි කිරීමේ විචල්‍ය නාමයකි. කෙසේ වෙතත්, ඔබ පයිතන් කවචයක් (අන්තර්ක්‍රියාකාරී පරිවර්තකය) භාවිතා කරන්නේ නම්, එය අවසන් වරට ක්‍රියාත්මක කරන ලද ප්‍රකාශයේ ප්‍රති result ලය දරයි (එය නැවත ලබා දෙනු ඇත.) එසේම, මෙම නූලට අනුව , එය i18n හි පරිවර්තන සෙවීම සඳහා ද යොදා ගනී.

ෆැක්ටොයිඩ් : පයිතන් යනු ජාවා සහ සී වලට සමාන භාෂාවකි. එය නිශ්චිත නිර්මාණ දර්ශනයකින් ගොඩනගා ඇත (" PEP 20 - The Zen of Python " වෙතින් ලබා ගත්:

  • ලස්සන කැතට වඩා හොඳයි
  • ව්‍යංගයට වඩා පැහැදිලිය
  • සරල දේට වඩා සංකීර්ණයි
  • සංකීර්ණය සංකීර්ණ වීමට වඩා හොඳයි
  • කියවීමේ හැකියාව ගණන් කරයි

මේ නිසා, අර්ධ-කොලෝන් ප්‍රකාශන පරිසීමකය ලෙස අවසර දී ඇතත්, ඒවා කියවීමේ හැකියාව සඳහා බහු පේළි භාවිතා කිරීම සඳහා සාමාන්‍යයෙන් ඉවත් කරනු ලැබේ. එසේම, පේළි ඉන්ඩෙන්ටේෂන් ඉතා වැදගත් වේ!


ඕනෑම අවස්ථාවක! මම තව දුරටත් ස්නිපෙට් එකතු නොකරමි (දිග 9 ට විරුද්ධ විය නොහැක!), මන්ද ඔබ දැනටමත් එය සමඟ විශාල වැඩ කොටසක් කර ඇති බැවිනි. වාසනාව!
nasser-sh

1
දිග 6: එය නැවත පැමිණේ [5, 6, 7, 8, 9, 10](ලැයිස්තුවේ අවසාන අංක 6)
වින්සන්ට්

දිග 16: lලැයිස්තුවක් විය යුතු නැත, එය නැවත ලබා ගත හැකි වස්තුවක් විය හැකිය; tuples, list සහ generator උදාහරණයක් ලෙස සියලුම වැඩ
nasser-sh

3 Sp3000: මම එය [සීමිත-ප්‍රභව] අභියෝග සමඟ භාවිතා කර ඇත්තෙමි.
රොබී Wxyz

4
හොඳ මහලු අයට ආදරය import antigravityනැද්ද?
කේතාංක

87

ජාවාස්ක්‍රිප්ට්

මෙය අළුත්ම සිට පැරණිතම දක්වා යයි. මා සඳහා සබැඳිය: [ සංස්කරණය කරන්න ]

දිග 51 ස්නිපටය:

console.log(require('fs').readFileSync(__filename))

තමන්ගේම මූලාශ්‍ර කේතය කියවීම නිසා “දැඩි ක්වයින්” අවශ්‍යතාවයන් අසමත් වුවද, මේ වතාවේ Node.JS ක්වීන්.

දිග 50 ස්නිපටය:

a=new XMLHttpRequest;a.open('GET','file');a.send()

අවසාන! AJAX ඉල්ලීමක් ( වැනිලා.ජේඑස් භාවිතා කරමින් ). අප විවෘත ආරම්භනය, එම ඉල්ලීම යැවීම, නමුත් මම පේනු එකතු ඇත්තටම කිරීමට කාමරයෙන් එළියට දිව කරන්න ප්රතිඵලයක් දෙයක්.

දිග 49 ස්නිපටය:

msg=new SpeechSynthesisUtterance('Hello World!');

"හෙලෝ වර්ල්ඩ්!" හ al ක් සූදානම් කරන්න. ඇත්ත වශයෙන්ම එය කථා කිරීම සඳහා තව ටිකක් වැඩක් වනු ඇත. අපට පරිමාව, තාරතාව, අනුපාතය සහ උච්චාරණය වෙනස් කළ හැකිය. HTML5Rocks හි කථන සංස්ලේෂණ API බලන්න . ෆයර්ෆොක්ස්, නිසැකව IE නැහැ විසින් පහසුකම් නොමැති .

දිග 48 ස්නිපටය:

function repeat(){setTimeout(repeat,48)}repeat()

setIntervalපුනරාවර්තන ලෙස අනුකරණය කිරීමෙන් අනුකරණය කරන්න setTimeout.

දිග 47 ස්නිපටය:

module.exports=function MyModule(a) {this.a=a};

NodeJS නැවතත්, නමුත් JS හි සෑම තැනකම මූලධර්මය සමාන වේ. මෙය ඉතා මූලික ඉදිකිරීම් ශ්‍රිතයක් වන අතර එමඟින් එක් දේපලක් ( a) සමඟ වස්තුවක් නිර්මාණය වේ. සැකසුම module.exportsමඟින් require()එය භාවිතා කිරීමෙන් ශ්‍රිතය අපනයනය කරයි .

දිග 46 ස්නිපටය:

canvas.getContext('2d').fillRect(46,46,46,46);

මේ සඳහා <canvas id="canvas"></canvas>මූලද්රව්යයක් අවශ්ය වේ. හැඳුනුම්පත් සහිත මූලද්‍රව්‍ය ගෝලීය විචල්‍යයන් ලෙස ජනගහනය වී ඇති බැවින් එය වාසිය ලබා ගනී, එබැවින් මූලද්‍රව්‍යයට canvasJS වෙතින් ප්‍රවේශ විය හැකිය . එවිට අපි එය x = 46, y = 46 හි 46x46 වර්ගයකින් පුරවන්නෙමු.

දිග 45 ස්නිපටය:

JSON.parse(require('fs').readFileSync('jsn'))

ආපසු නෝඩ් වෙත. මෙන්න, අපි jsnවත්මන් නාමාවලියෙන් නම් කරන ලද JSON ගොනුවක් විග්‍රහ කරමු .

දිග 44 ස්නිපටය:

(a=document.createElement('a')).href="/url";

# 39 මත ගොඩනැගීම. දැන් අපි මූලද්රව්යයක් සාදා ගුණාංගයක් පවරමු. එය තවමත් DOM හි නොමැත.

දිග 43 ස්නිපටය:

sq=[1,2,3,4,5].map(function(n){return n*n})

භාවිතා කරමින් පළමු වර්ග 5 න් පෙළක් සාදයි map().

දිග 42 ස්නිපටය:

six="1+5",nine="8+1";eval(six+' * '+nine);

මෙම සමාන මූලධර්මය මත ක්රියා මෙම , නමුත් JS තොර #defineසහ එසේ uglier අවසන් වේ. එය ඇත්ත වශයෙන්ම, ජීවිතයට, විශ්වයට සහ සෑම දෙයකටම පිළිතුර සපයයි .

දිග 41 ස්නිපටය:

c=function(){var i;return function(){}}()

වසා දැමීමේ ආරම්භය. cදැන් අභ්‍යන්තර විචල්‍යයට ප්‍රවේශය සහිත ශ්‍රිතයක් (අභ්‍යන්තරය) i, නමුත් එය කිසිවක් නොකරයි.

දිග 40 ස්නිපටය:

$('p').click(function(){$(this).hide()})

අපි එම ඡේද මුළුමනින්ම අතහැර jQuery භාවිතා කරමු.

දිග 39 ස්නිපටය:

script=document.createElement('script')

නව බාහිර පිටපතක් එක් කිරීමේ ආරම්භය මෙයයි. හිස් <script>අංගයක් සාදන්න , ඒ පිළිබඳව සඳහනක් තබා ගන්න.

දිග 38 ස්නිපටය:

document.getElementsByClassName('abc')

.abcලේඛනයේ ඇති සියලුම අංග සොයා ගන්න. ඇත්ත වශයෙන්ම, jQuery සමඟ, එය පමණි $('.abc')...

දිග 37 ස්නිපටය:

b=JSON.parse(JSON.stringify(a={3:7}))

සමාන, නමුත් විසන්ධි කරන ලද වස්තු දෙකක් නිර්මාණය කරයි a, සහ b. ඔබ එසේ කරන්නේ නම්

a={a:1};
b=a;
b.a=3;

ඔබ අවසන් කියලා සමග a=={a:3}නිසා, aසහ bඑම වස්තුව වෙත කාරණය. ඒවා විසුරුවා හැරීමට අපි JSON භාවිතා කරමු.

දිග 36 ස්නිපටය:

(function f(){return "("+f+")()"})()

quine . එය තමන්ගේම ප්‍රභව කේතය මුද්‍රණය කරයි.

දිග 35 ස්නිපටය:

document.body.style.display="none";

# 32 බලන්න. අන්තර්ගතය නැවත ලිවීමෙන් තොරව මෙය ලේඛනය සඟවයි.

දිග 34 ස්නිපටය:

Object.prototype.toString.call(34)

ඇමතීම Object.prototype.toStringයනු වස්තුවක වර්ගය පැවසීමට හොඳ ක්‍රමයකි. අතර 34..toString()වේ "34", මෙම ඇබිත්ත වේ [object Number].

දිග 33 ස්නිපටය: (මේ සඳහා වන ගෞරවය නිර්නාමික පරිශීලකයෙකුට හිමිවේ )

+0%-0.&(v\u0061r=~void[{}<<!(0)])

මෙය වලංගු ජාවාස්ක්‍රිප්ට් නොවේ යැයි සිතනවාද? එය අත්හදා බැලීම වඩා හොඳය ... (Chrome භාවිතා කරන්න);)

දිග 32 ස්නිපටය:

document.body.innerHTML="hacked"

අඩක්! Hazxxors! එකොළොස් !! 11!

දිග 31 ස්නිපටය:

a=[];for(i=0;i<31;i++)a.push(i)

විහිළුවක් නැත, ඇත්ත වශයෙන්ම forලූපයක් භාවිතා කිරීමට හැකි වන තෙක් මම බොහෝ කාලයක් බලා සිටිමි! මෙය 0-30 සිට අරාවක් නිර්මාණය කරයි.

දිග 30 ස්නිපටය:

new Date().getDay()==1?"S":"E"

පළමු වරට ත්‍රික ක්‍රියාකරු භාවිතා කිරීම. මට අක්ෂර 30 කින් මෙයට වඩා ගැළපීමට නොහැකි විය, එබැවින් අපි දන්නේ අද ඉරිදාද, නැතිනම් වෙනත් දෙයක්ද යන්න පමණි. : පී

දිග 29 ස්නිපටය:

Object.keys(window).push('i')

Object.keys(window)ගෝලීය විචල්‍යයන්ගේ (ගුණාංග window) පෙළක් ලබා ගනී . .push()එම අරාවකට අයිතමයක් එකතු කරයි. මෙය සමාන යැයි window.i=undefinedසිතනවාද? නෑ!

දිග 28 ස්නිපටය:

setTimeout("a=confirm()",28)

නව නූල් නිර්මාණය කිරීම හැර මිලි තත්පර 28 ක් බලා සිටීම එතරම් ප්‍රයෝජනවත් නොවේ.

දිග 27 ස්නිපටය:

document.querySelector('a')

DOM නම් මෙතරම් දිගු වීම ලැජ්ජාවකි. මට ලබා ගත හැකි වූයේ මෙහි එක් සබැඳියක් පමණි.

දිග 26 ස්නිපටය:

JSON.stringify({twenty:6})

# 16 බලන්න. දැන් අපට නියම JSON - නූලක් ලැබේ.

දිග 25 ස්නිපටය:

new Badge("Good Answer");

උපකල්පනය කිරීම Badge()යනු තර්කයක් ගෙන යන ඉදිකිරීම්කරුගේ කාර්යයකි ... හොඳ පිළිතුරු ලාංඡනයක් නිර්මාණය විය!

දිග 24 ස්නිපටය:

do {alert(24)} while(!1)

මම ඇත්ත වශයෙන්ම එතරම් භාවිතා නොකරමි do..while, නමුත් සමහරු එසේ කරති. මෙය සාමාන්‍ය whileලූපයක් නම්, එය කිසිවක් අනතුරු අඟවන්නේ නැත, මන්ද එය සැමවිටම අසත්‍යය. do..whileසෑම විටම අවම වශයෙන් එක් වරක්වත් ධාවනය වනු ඇත, එබැවින් අපට 24 ක් දැක ගත හැකිය.

දිග 23 ස්නිපටය:

window.parent==self.top

මේ සියල්ල එකම වස්තුවකට යොමු වන අතර එය සාමාන්‍යයෙන් හැඳින්වේ window. ඔබ සාමාන්‍යයෙන් ශ්‍රිතයක් අමතන්නේ නම්, ද thisතිබේ. එය ගෝලීය වස්තුවට ප්‍රවේශ වීමේ ක්‍රම 5 කි!

දිග 22 ස්නිපටය:

for(i in self)alert(i)

සියලුම ගෝලීය විචල්‍යයන් දැනුවත් කරන්න. එය එසේ වේ self==window. (ඊළඟ ස්නිපටය බලන්න.)

දිග 21 ස්නිපටය:

"2"+1==21 && 2+1=="3"

බලන්න, එය නැවතත් ජේඑස්ගේ වාත්තු නීති. මෙම ප්‍රකාශය සත්‍යයි, btw.

දිග 20 ස්නිපටය:

Math.random()<.5?0:1

0-1 සිට අහඹු අංකයක් තෝරන්න, සහ ත්‍රික ක්‍රියාකරු භාවිතා කර වටයන්න. එය භාවිතා කිරීම පහසු වුවද Math.round...

දිග 19 ස්නිපටය:

[1,2,3].map(i=>i*i)

මෙය අලුත් ය. හරියට අලුත් දෙයක් වගේ. 1, 2, සහ 3 වර්ග ගණනය කිරීම සඳහා එය ES6 ඊතල ශ්‍රිත භාවිතා කරයි . වර්තමානයේ එයට සහය දක්වන්නේ ෆයර්ෆොක්ස් පමණි.

දිග 18 ස්නිපටය:

location.href="/";

# 15 මෙන්, නමුත් මෙවර එය PPCG මුල් පිටුවට යයි, SE නොවේ.

දිග 17 ස්නිපටය:

(function(){})()

එය 14 සිට ස්නිපටය, නමුත් වඩා හොඳයි! දැන් එය IIFE ය.

දිග 16 ස්නිපටය:

obj={not:'json'}

මෙය මගේ සුරතල් මුතු වලින් එකක් පැහැදිලි කරයි. මේ වනාහි වස්තුව , නෑ JSON ! JSON යනු ජාවාස්ක්‍රිප්ට් වස්තු මත පදනම් වූ දත්ත හුවමාරු ආකෘතියකි, නමුත් වඩාත් දැඩි ආකෘතියක් ගනී.

දිග 15 ස්නිපටය:

open('//s.tk/')

එය සිතන්න. Http://s.tk/ යළි- යොමුවීම භාවිතා කරමින් SE මුල් පිටුව විවෘත කරන්න .

දිග 14 ස්නිපටය:

function f(){}

W00t! කාර්යයන්! එතරම් නරක කිසිදු කාමරයක් තියෙනවා කරන්න දෙයක් නැහැ.

දිග 13 ස්නිපටය:

Math.random()

0 සිට 1 දක්වා අහඹු අංකයක් ජනනය කරන්න ඔබේ සීමාවන් නිර්වචනය කිරීමට අවශ්‍යද? දැඩි වාසනාව. (ඇත්ත වශයෙන්ම නොවේ, එය පහසුය.)

දිග 12 ස්නිපටය:

new Date<=12

මෙම ප්‍රකාශය ජේඑස් හි කිසි විටෙක සත්‍ය නොවීය. 1/1/1970 00: 00: 00.012 ට බොහෝ කලකට පසු '95 වන තෙක් JS නිර්මාණය කර නොමැත (ෆැක්ටෝයිඩ් බලන්න).

දිග 11 ස්නිපටය:

Math.PI*121

අරය 11 සහිත රවුමක ප්රදේශය.

දිග 10 ස්නිපටය:

if('j')9+1

ඔබ දැක නොමැති නම්, කේතයේ ඇති ස්නිපෙට් අංකය සමඟ යමක් කිරීමට මම කැමතියි. මෙය 10 ක් ආපසු ගෙන, හෝඩියේ දහවන අකුර වන j භාවිතා කරයි.

දිග 9 ස්නිපටය:

[9].pop()

එක් අයිතමයක් සමඟ අරාවක් සාදන්න. වීසල් 9 popයනවා .

දිග 8 ස්නිපටය:

document

සියලුම DOM වැඩ සඳහා පදනම. නමුත් අපට කිසිවක් කළ නොහැක, මන්ද එය දිගු වැඩිය. :( යන්න jQuery!

දිග 7 ස්නිපටය:

alert()

ඔහ් කොල්ලා! ක්‍රියාකාරී ඇමතුමක්! අවසාන වශයෙන් දේවල් කිරීමට හැකිවීම!

දිග 6 ස්නිපටය:

var x=6

# 3 මත පදනම්ව. වඩා හොඳ වුවත්, දැන් ගෝලීය පැහැදිලිය . : පී

දිග 5 ස්නිපටය:

[][5]

void 0ලබා ගැනීමට වඩා කෙටි වේ undefined. BTW: ''.aඊටත් වඩා කෙටි ය; අක්ෂර 4 ක් පමණි.

දිග 4 ස්නිපටය:

+"4"

මෙමඟින් නූලෙන් 4පිටත අංකය නිර්මාණය "4"වේ. ප්‍රතිවිරුද්ධ දේ කිරීමට ඔබට මෙම එකම අක්ෂර 4 වෙනත් අනුපිළිවෙලකට නැවත භාවිතා කළ හැකිය!

දිග 3 ස්නිපටය:

x=3

අපොයි, අපි දැන් ව්‍යාජ ගෝලීය විචල්‍යයක් කළා ...

දිග 2 ස්නිපටය:

{}

මෙය කරන්නේ කුමක්ද? වස්තුවක් වචනානුසාරයෙන් නිර්මාණය කරයි යැයි ඔබ කීවා නම්, ඔබ වැරදිය. එය ඇත්ත වශයෙන්ම හිස් කොටසකි. කොන්සෝලයක් විවෘත කර එය උත්සාහ කරන්න! එය නැවත පැමිණේ undefined, නැත {}.

2018 දී, {}ක්‍රෝම් හි කොන්සෝලය තුළ ඇත්ත වශයෙන්ම හිස් වස්තුවක් ලබා දෙයි.

දිග 1 ස්නිපටය:

1

ඒක තමයි. ඕනෑම අංකයක් වලංගු JS ප්‍රකාශනයකි.

ෆැක්ටොයිඩ්: ජාවාස්ක්‍රිප්ට් මුලින් හැඳින්වූයේ ලයිව්ස්ක්‍රිප්ට් යනුවෙනි. එකල (1995) ජාවාහි ජනප්‍රියතාවය උපයෝගී කර ගැනීම සඳහා එය ජාවාස්ක්‍රිප්ට් ලෙස වෙනස් කරන ලදි. පෞද්ගලිකව, ඔවුන් පැරණි නම තබා ගත යුතුව තිබුණි; ජාවාස්ක්‍රිප්ට් එතැන් සිට ව්‍යාකූලත්වයට හේතු විය. සත්‍යය නම්, ජාවා සහ ජාවාස්ක්‍රිප්ට් "කාර්" සහ "කාපට්" වලට සමාන ය .


1
ස්නිපෙට් 33 ෆයර්ෆොක්ස් හි ක්‍රියා නොකරයි. එය ඇත්ත වශයෙන්ම වලංගු JS ද?
ඔරියෝල්

වස්තුවක් එතරම් අපිරිසිදු ලෙස පිටපත් කිරීම සඳහා එය තදින් හා නැවත සකස් කිරීම මට පෙනේ. ECMAScript 6 හඳුන්වා දෙයි Object.assign, එබැවින් ස්නිපෙට් 37 බවට පත්වේ b = Object.assign({ }, a = {3 : 7}).
ඔරියෝල්

Ri ඔරියෝල් ඔව්, දැන් ෆයර්ෆොක්ස් පමණක් එයට සහය දක්වයි, එබැවින් අප දැන් අපිරිසිදු ක්‍රමයට ඇලී සිටිය යුතුය. අවම වශයෙන් එය වඩා eval(uneval(a))හොඳයි නේද? ;)
Scimonster

# 38 ගැන, සෑම විටම පවතී document.querySelectorAll("element#id.classname[attribute]:not(somethingwedontwant)"). (ඕනෑම වලංගු CSS තේරීම් යන්ත්‍රයකට සහය දක්වයි).
මාටියන් 1

# 40 ස්නිපටය එතරම් සිත්ගන්නා සුළු නොවේ, නමුත් අදහස් දැක්වීම මිල කළ නොහැකි ය.
Scimonster

85

ආර්

ෆැක්ටොයිඩ්: ආර් ක්‍රමලේඛන භාෂාව ආරම්භ වූයේ එස් ක්‍රමලේඛන භාෂාවේ ග්නූ ක්‍රියාත්මක කිරීමක් ලෙස ය. එය මූලික වශයෙන් සංඛ්‍යාලේඛන සහ අදාළ යෙදුම් සඳහා භාවිතා කරයි.

සටහන: තරඟයේ අවශ්‍යතාවයක් නොවුවද, මෙහි ඇති සෑම ස්නිපටයක්ම ආර් හි තනිවම ධාවනය කළ හැකිය.


දිග 32:

`[.data.frame`(swiss,3,2,drop=F)

මෙය ටිකක් අද්භූත ලෙස පෙනේ ... ඇත්තෙන්ම එය එසේ විය යුතුය! මෙය ලිවීමට වඩා හොඳ ක්‍රමයක් තිබේ:

swiss[3, 2, drop = FALSE]

එය තව ටිකක් හුරුපුරුදු විය යුතුය. මෙන්න අපි මෙම කේත කෑලි වලින් එකක් ධාවනය කරන විට සිදුවන්නේ:

> `[.data.frame`(swiss,3,2,drop=F)
             Agriculture
Franches-Mnt        39.7

මෙම swissඅප මෙතෙක් දැක ඇති තවත් පිරිසක් වගේ ආර් සමග දත්ත රාමුව නැව්. 1888 වර්ෂයේ සිට ස්විට්සර්ලන්තයේ ප්‍රංශ භාෂාව කතා කරන පළාත් 47 ක් සඳහා සාරවත් බව සහ සමාජ ආර්ථික දර්ශක එහි අඩංගු වේ. ඉතින් 1888 දී ස්විට්සර්ලන්තයේ ෆ්‍රැන්චෙස්-එම්ට් පළාතේ පිරිමින්ගෙන් 39.7% ක් කෘෂිකර්මාන්තයේ යෙදී සිටියහ.

සරල රාමුවක් භාවිතා කරමින් දත්ත රාමුවකින් පේළි හෝ තීරු උකහා ගන්නා විට, R ඇත්ත වශයෙන්ම [.data.frameපසුබිමේ භාවිතා කරයි. ස්නිපෙට් 24 හි අප දුටු පරිදි, ඕනෑම දෙයක් පසුපස කිනිතුල්ලන්ගෙන් වටවී ඇති තාක් දුරට එය ක්‍රියාකාරී නාමයක් ලෙස අර්ථ දැක්විය හැකිය, එබැවින් මෙහි අපගේ ස්නිපටය නීත්‍යානුකූල වන්නේ ශ්‍රිත නාමයේ තාක්ෂණික වශයෙන් අසමසම වරහන් අඩංගු වුවද.

මෙම drop=තර්කය ඔබ එය කළ හැකි නම්, අඩු මානයක් බවට ප්රතිඵලයක් අතහැර දැමීමට අවශ්ය දැයි ආර් කියයි. ඇත්ත වශයෙන්ම, අපි කිව්වොත් drop=TRUE, අපට මෙය ලැබේ:

> `[.data.frame`(swiss,3,2,drop=T)
[1] 39.7

කලින් ප්‍රති result ලය දත්ත රාමුවක් වූ තැන, R දැන් අපට දෙගුණයක් ලබා දෙයි.


දිග 31:

print(fortune("hadleywickham"))

මෙම fortune()උත්සවය සියලු දැන සිට ඇත fortunesනැණවත් ජනයා විවිධ ඥානවන්ත මිල කැඳවීම් විවිධ සපයන පැකේජය. මෙම ස්නිපටය මඟින් හැඩ්ලි වික්හැම් (23) වෙතින් පහත දැක්වෙන මැණික් ඔබට කොන්සෝලය වෙත මුද්‍රණය කිරීමෙන් ලබා දෙනු ඇත:

That's a casual model, not a causal model - you can tell the difference by looking
for the word "excel".
    -- Hadley Wickham (commenting on an Excel chart showing student's SAT score
       increases with family income, without considering future covariates)
       http://twitter.com/#!/hadleywickham (February 2012)

දිග 30:

pie(rep(1,12),col=rainbow(12))

හොඳ පයි ප්‍රස්ථාරයකට ආදරය නොකරන්නේ කවුද? pie()සංඛ්‍යා දෛශිකයක් මත පදනම්ව නැවුම්ව බේක් කරන ලද පයි ප්‍රස්ථාරයක් මෙම ශ්‍රිතය මඟින් ඔබට ලබා දෙනු ඇත. rep()පළමු අංගය නැවත නැවත විසින් දෛශික නිර්මාණය r එහිදී වරක් r දෙවන තර්කය වේ. මෙම col=පරාමිතිය පවසනවා pie()එම පෙති වර්ණයට ආකාරය. ඉන්ද්‍රජාලික ශ්‍රිතය rainbow()දේදුන්නෙහි “සමාන පරතරයකින් යුත්” වර්ණ සඳහා හෙක්ස් කේත අඩංගු නිශ්චිත දිගක දෛශිකයක් ජනනය කරයි.

ඔබ සතුව ඇත්තේ ඔබේ මූලික "මෙම වගුවේ එක් එක් වර්ණයෙහි ප්‍රමාණය" ප්‍රස්ථාරයයි:

රූප විස්තරය මෙහි ඇතුළත් කරන්න


දිග 29:

summary(lm(mag~depth,quakes))

මෙහි කරුණු කිහිපයක් සිදුවෙමින් පවතී, එබැවින් අපි වරකට එක පියවරක් තබමු.

quakesආර් සමඟ නැව්ගත කරන දත්ත කට්ටලයක් වන අතර එය 1964 සිට ෆීජි අසල රිච්ටර් පරිමාණයෙන් 4.0 ට වඩා විශාල භූ කම්පන සිදුවීම් 1000 ක් පිළිබඳ තොරතුරු අඩංගු වේ. දත්ත සමුදායේ තීරු දෙකක් වන්නේ magභූමිකම්පාවේ විශාලත්වය වන depthඅතර එය කේන්ද්‍රයේ ගැඹුර කිලෝමීටර වලින්.

මෙම lm()උත්සවය, ඇබිත්ත 28 හි සඳහන් පරිදි, රේඛීය ආකෘති ගැලපේ. එය lmවස්තුවක් හෝ වඩාත් නිවැරදිව පන්තියේ වස්තුවක් ලබා දෙයි lm. අනාවැකි (හෝ ස්වාධීන විචල්‍යය) සහ ප්‍රතිචාරය (හෝ යැපෙන විචල්‍යය) නියම කිරීමට ක්‍රම දෙකක් තිබේ , මම සූත්‍ර ක්‍රමය තෝරා ගතිමි. මෙය ස්වරූපය ගනී response ~ predictor. බහු අනාවැකි ලෙස දක්වා ඇත y ~ x1 + x2. සූත්‍රයේ ඇති වස්තු ඊළඟ තර්කයේ දක්වා ඇති සන්දර්භය තුළ ඇගයීමට ලක් කෙරේ.

ඉතින් lm(mag ~ depth, quakes)කරන්නේ සාමාන්‍ය රේඛීය ආකෘතියක් සාමාන්‍ය අවම චතුරස්ර ප්‍රතිරෝධයක් භාවිතා කරමින් විශාලත්වය ප්‍රතිචාරය වන අතර ගැඹුර පුරෝකථනය කරන්නා ය. එය කුමක්ද magසහ කුමක් දැයි depthඅපි දනිමු quakes.

summary()මූලික වශයෙන් සවිකෘත ආකෘතිවල ප්‍රති results ල සාරාංශ කිරීම සඳහා භාවිතා කරන සාමාන්‍ය ශ්‍රිතයකි. එය එහි තර්කයේ පන්තියට විශේෂිත ක්‍රමවේදයක් ඉල්ලා සිටී. අප යම් lmවස්තුවක් පසු කළ බැවින් , එය සැබවින්ම හැඳින්වෙන්නේ ශ්‍රිතයක් ලෙසිනි summary.lm().

මේ සියල්ල එකට ගත් විට, භූමිකම්පා ගැඹුරින් භූමිකම්පාව පැහැදිලි කිරීමට උත්සාහ කරන රේඛීය ආකෘතියේ සාරාංශය අපට ලැබේ. නිශ්චිතවම, R විහිදුවන්නේ මෙයයි:

> summary(lm(mag~depth,quakes))

Call:
lm(formula = mag ~ depth, data = quakes)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.72012 -0.29642 -0.03694  0.19818  1.70014 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  4.755e+00  2.179e-02 218.168  < 2e-16 ***
depth       -4.310e-04  5.756e-05  -7.488 1.54e-13 ***
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.3921 on 998 degrees of freedom
Multiple R-squared:  0.05319,   Adjusted R-squared:  0.05225 
F-statistic: 56.07 on 1 and 998 DF,  p-value: 1.535e-13

එය ඔබට පවසන පළමු දෙය ශ්‍රිත ඇමතුම වන්නේ කෙසේදැයි බලන්න. එයට හේතුව අප ස්නිපෙට් 28 හි කළාක් මෙන් lm()ශ්‍රිතය භාවිතා කිරීමයි match.call()!


දිග 28:

f<-function(x,y)match.call()

R කාර්යයන් බොහෝ විට ඔබ ඔවුන්ට පවසන දේ නිරීක්ෂණය කිරීමට කැමතියි. ඇත්ත වශයෙන්ම, සමහර විට ඔබ ඉදිරිපත් කළ විධානය ආපසු ලබා දුන් වස්තුවෙහි ලක්ෂණයක් ලෙස ඔබට ලබා දෙනු ඇත. (උදාහරණයක් ලෙස lm(), එය රේඛීය ආකෘති නිර්මාණය කරයි.) නිවැරදි උපදෙස් සිහිපත් match.call()කිරීම ශ්‍රිතය තුළ භාවිතා කරයි. මෙය අර්ථ නිරූපණය කළ ශ්‍රිත ඇමතුම ග්‍රහණය කරයි, නැතහොත් ගැලපේ .

මෙන්න අපි f()තර්ක දෙකක් ගෙන පසුව එය දුටු දේ ඔබට පවසන ශ්‍රිතයක් අර්ථ දක්වා ඇත .

> f(1,2)
f(x = 1, y = 2)

ඇසුරුම් සංවර්ධනයේදී මෙන් සාමාන්‍ය භාවිතය සඳහා (ඔබ වෙනුවෙන් පමණක් නොව) කාර්යයන් සංවර්ධනය කිරීමේදී මෙය මූලික වශයෙන් ප්‍රයෝජනවත් වේ. ඔබට match.call()වනාන්තරයේ උදාහරණයක් දැකීමට අවශ්‍ය නම් , lm()ඉදිරිපත් කිරීමෙන් ප්‍රභව කේතය දෙස බලන්න stats:::lm. එය කරන පළමු දෙය නම් ශ්‍රිත ඇමතුම භාවිතා match.call()කිරීමයි.


දිග 27:

install.packages("ggplot2")

මෙය සුළුපටු බවක් පෙනෙන්නට තිබුණත්, ආර් එතරම් ජනප්‍රිය වීමට එක් හේතුවක් එය පෙන්වයි: එය පැකේජ හරහා ඉතා පහසුවෙන් විස්තාරණය කළ හැකිය. ඕනෑම කෙනෙකුට ඔවුන්ගේ පැකේජ සංවර්ධනය කර නිදහසේ බෙදා ගත හැකිය!

install.packages()එහි නම යෝජනා කරන දේ හරියටම කරයි. එය ඔබගේ සුපුරුදු CRAN (විස්තීර්ණ R සංරක්ෂිත ජාලය) දර්පණය භාවිතා කර පැකේජ සඳහා දඩයම් කරයි. දේශීය මූලාශ්‍ර කේතයෙන් ඇසුරුම් ස්ථාපනය කිරීමටද ඔබට හැකිය.

අපි ggplot2පැකේජය භාවිතා කළ ස්නිපෙට් 23 මතකද ? එම පැකේජය R සමඟ නැව්ගත නොකරයි, නමුත් අක්ෂර 27 කින් ඔබට ggplot2එය ස්ථාපනය කිරීමෙන් ඔබගේ සියලු සිහින සැබෑ කර ගත හැකිය.


දිග 26:

filled.contour(t(volcano))

මෙම volcanoආර් ඒ මහතාගේ නවසීලන්තයේ ඕක්ලන්ඩ් නඟරයේ පැවති Maungawhau (හෝ ගල්කිස්ස ඒදන්) ගිනි කන්දක් මත භූ විද්යාත්මක තොරතුරු අඩංගු න්යාසය සමග දත්ත සමුදාය නැව්. අනුකෘතියේ පේළි නැගෙනහිර සිට බටහිරට දිවෙන ජාලක රේඛාවලට අනුරූප වන අතර තීරු දකුණේ සිට උතුරට දිවෙන ජාලක රේඛා වේ.

නොමඟ යාම සඳහා, අපි දිශාවන් මාරු කරමු, එබැවින් තීරු දැන් නැගෙනහිර-බටහිර හා පේළි දකුණු-උතුර. අපට මෙය කළ හැක්කේ අනුකෘති පාරදෘශ්‍යයක් භාවිතා කරමිනි t(). අප එහි සිටින විට සමෝච්ඡ සිතියමක් සාදා නොගන්නේ මන්ද? filled.contour()ඒක කරනවා.

රූප විස්තරය මෙහි ඇතුළත් කරන්න


දිග 25:

pmatch("s",c("n","size"))

මෙම pmatch()ශ්‍රිතය අප මෙතෙක් දැක ඇති සියලුම අර්ධ ගැලපීම් පිටුපස ඇති මායාව සපයයි. පළමු තර්කය දෛශිකයේ දෙවන තර්කයේ එක් එක් මූලද්‍රව්‍ය සමඟ සැසඳෙන නූලකි. අද්විතීය ගැලපීමක් තිබේ නම්, ගැලපෙන මූලද්‍රව්‍යයේ දර්ශකය ආපසු ලබා දෙනු NAලැබේ , එසේ නොමැතිනම් ඔබට ලැබෙනු ඇත.

මෙහි ඇති ස්නිපටය මෙම ශ්‍රිතය භාවිතා කිරීම පිළිබඳ “සැබෑ ලෝක” උදාහරණයකි. අපි sample()ශ්‍රිතය භාවිතා කළ ස්නිපෙට් 13 වෙත නැවත සිතන්න . එය තර්ක පිළිගන්නා n, size, replace, හා prob, නමුත් පළමු දෙකක් අවශ්ය වේ. ස්නිපෙට් 13 හි අපි s=කෙටිමං ලෙස භාවිතා කළෙමු size=. ඇත්ත වශයෙන්ම පසුබිමේ සිදුවන්නේ මෙම ස්නිපටය වැනි දෙයකි, එහිදී අප ලබා දී ඇති දේ අපේක්ෂිත දේ හා සැසඳේ. "S" "ප්‍රමාණය" අද්විතීය ලෙස ගැලපෙන බැවින්, එය s=කෙටිමං ලෙස භාවිතා කිරීම මුළුමනින්ම නීත්‍යානුකූල ය .


දිග 24:

`(`=function(x)9;2*(3-1)

ඔබ නොකළ යුතු දෙයකට කදිම උදාහරණයක්! කවදා හෝ!

ශ්‍රිතය නිර්වචනය කිරීමේදී ඔබ පසුපස කිනිතුල්ලන් වටා සිටින තාක් කල් ඔබට ශ්‍රිත ලෙස අක්ෂර පැවරිය හැකිය. මෙහිදී අපි R ට පැවසුවේ (එය ආදානය නොසලකා සෑම විටම 9 ක් ලබා දෙන ශ්‍රිතයක් බවයි. වෙනත් බොහෝ භාෂාවල මෙන්, ;එක් පේළියක විධාන දෙකක් ඇතුළත් කිරීම සඳහා භාවිතා කළ හැකිය. ඉතින් අපි R ට කිව්වේ ශ්‍රිතය නිර්වචනය කර (මුද්‍රණය කරන්න 2*(3-1).

දැන්, ඕනෑම පුද්ගලයෙකු ඔබට කියනු ඇත්තේ 2 * (3-1) 4 විය යුත්තේ ඔබ 3-1 = 2 කරන නිසා 2 * 2 = 4 බවයි. නමුත් වරහන් තුළ ඇති ඕනෑම දෙයක් 9 බව අපි R ට පැවසුවෙමු. එබැවින් 3-1 = 2 අතර, අපට දැන් (3-1) = 9 ඇත. එවිට අපට 2 * (3-1) = 2 * 9 = 18 ලැබේ.

මෙවැනි භයානක දේ සිදුවිය හැකි බැවින්, ඔබ ප්‍රකාශනයක වරහන් අඩංගු කේතයක් ඉදිරිපත් කරන සෑම අවස්ථාවකම (එනම් ශ්‍රිත ඇමතුමක් නොවේ), R පරිවර්තකය ඇත්ත වශයෙන්ම (ඔබ (ශ්‍රිතයක් ලෙස අර්ථ දක්වා තිබේද යන්න නොසලකා කැඳවනු ලබන ඕනෑම ශ්‍රිතයක් සොයයි . පොදුවේ ගත් කල, ඔබ වැඩි වැඩියෙන් ලියන තරමට ආර් පරිවර්තකයා වැඩ කරයි.


දිග 23:

qplot(Na,y=RI,data=fgl)

(ඉතා) සරල ggplot2උදාහරණයක් සඳහා අවසාන වශයෙන් ප්‍රමාණවත් ඡන්ද . මෙම ggplot2පැකේජය පුරාවෘත්තයේ ආර් දේවතාවිය හැඩ්ලි වික්හැම් විසින් නිර්මාණය කරන ලද ග්‍රැෆික් ව්‍යාකරණයේ ආර් ක්‍රියාත්මක කිරීමකි . පොදුවේ ගත් කල, වාක්‍ය ඛණ්ඩය මූලික R ග්‍රැෆික්ස් වලට වඩා බෙහෙවින් වෙනස් ය. කෙසේ වෙතත්, qplot()පැකේජයේ සමහර මූලික අංගයන්ට වඩා සරල අතුරුමුහුණතක් වන අතර මූලික plot()R ට සමාන සින්ටැක්ස් ඇත. නමුත් මම ඔබට පෙන්වා ඇති බොහෝ උදාහරණ මෙන් නොව qplot(), ක්‍රියාකාරී පරාමිති නම් අර්ධ වශයෙන් ගැලපීමට සහාය නොදක්වයි.

මෙම fglදත්ත සමුදාය සිට එන MASSපැකේජය. අධිකරණ වීදුරු කැබලි වල ගුණාංග මැනීම එහි අඩංගු වේ. මෙන්න අපි විචල්‍යයන් භාවිතා කරන Naඅතර එය බර අනුව සෝඩියම් (Na) ප්‍රතිශතය RIවන අතර වීදුරුවේ වර්තන දර්ශකය වේ.

රූප විස්තරය මෙහි ඇතුළත් කරන්න


දිග 22:

unique(presidential$n)

මෙම unique()කාර්යය ඔවුන් ආදාන පෙනී ඇති පිණිස එහි ආදාන දෛශික සිට අද්විතීය වටිනාකම් සහිත දෛශික පැමිණේ. මෙම presidentialසමඟ දත්ත සමුදාය නැව් ggplot2පැකේජය (27). (එය නිවැරදි කිරීම සඳහා ජෙමුස් 42 ට ස්තූතියි!) එහි විස්තරය:

එක් එක් ජනාධිපතිවරයාගේ නම්, ඔවුන්ගේ ධූර කාලය ආරම්භ වූ හා අවසන් වූ දිනය සහ අයිසන්හවර් සිට බුෂ් ඩබ්ලිව් දක්වා එක්සත් ජනපද ජනාධිපතිවරුන් 10 දෙනෙකුගෙන් යුත් ඔවුන්ගේ පක්ෂය.

presidentialදත්ත රාමුවක් වන අතර, ලැයිස්තු වල අයිතම අඩංගු වන ආකාරයටම දත්ත රාමු වල තීරු අඩංගු වේ. තීරු නම් භාවිතා කරමින් සඳහන් කර $ඇත. මෙම විශේෂිත දත්ත කට්ටලයේ nameජනාධිපතිවරයාගේ නම ඇතුළත් තීරුවක් ඇත. නමුත් රැඳී සිටින්න, අපි නියම කළේ පමණි n! ඇත්ත වශයෙන්ම, මෙය අර්ධ ගැලපීම සඳහා තවත් උදාහරණයකි (13, 16), එබැවින් nඑය සම්පූර්ණයෙන්ම නීත්‍යානුකූල ය.

මෙය ඉදිරිපත් කිරීමෙන් සිත්ගන්නා ප්‍රති result ලයක් ඇත:

[1] "Eisenhower"  "Kennedy"  "Johson"   "Nixon"  "Ford"  "Carter"
[7] "Reagan"      "Bush"     "Clinton"

ලින්ඩන් බී. ජොන්සන්ගේ නම අක්ෂර වින්‍යාසය දක්වන ආකාරය සැලකිල්ලට ගන්න ... අපොයි.

(සටහන: මෙය පළ කිරීමෙන් වසරකට වැඩි කාලයක් ගතවී ඇතත්, ජොන්සන් යතුරු ලියනය සවි කර ඇති බව මගේ අවධානයට ලක්ව ඇත. RIP හාස්‍යය.)


දිග 21:

integrate(dexp,0,Inf)

සීමිත හෝ අනන්ත කාල පරතරයක් තුළ තනි විචල්‍යයක ශ්‍රිතවල අනුවර්තී චතුරස්රය සඳහා R තුළ සාදන ලද ශ්‍රිතයක් ඇත. R හි, අනන්තය Inf+ අනන්තය -Infසඳහා සහ අනන්තය සඳහා නියම කර ඇත. මෙම dexp()කාර්යය ඝාතීය බෙදාහැරීම් සඳහා සම්භාවිතා ව්යාප්තියක් කාර්යයකි. On ාතීය ව්‍යාප්තියේ සහය [0, + අනන්තය) සහ සම්භාවිතා බෙදාහැරීම් 1 ට අනුකලනය වන හෙයින්, අපි ප්‍රති result ලය 1 වනු ඇතැයි අපේක්ෂා කරමු. මෙන්න, අපේක්ෂිත ප්‍රති result ලය!

1 with absolute error < 5.7e-05

දිග 20:

deriv(~cos(x^3),"x")

R ට සංකේතාත්මක ව්‍යුත්පන්නයන් කළ හැකිය! මෙය නැවත පැමිණේ:

expression({
    .expr1 <- x^3
    .value <- cos(.expr1)
    .grad <- array(0, c(length(.value), 1L), list(NULL, c("x")))
    .grad[, "x"] <- -(sin(.expr1) * (3 * x^2))
    attr(.value, "gradient") <- .grad
    .value
})

ඒ දෙස බැලීමෙන් ඔබට එය ශ්‍රිතය විග්‍රහ කර දාම නියමය භාවිතා කරන ආකාරය දැක ගත හැකිය. පළමු වසරේ ගණනය කිරීම් කළ සෑම දෙයක්ම කළ හැකි ය! deriv()ශ්‍රිතයේ පළමු තර්කය මෙම අවස්ථාවේ දී යම් විචල්‍යයක් අනුව R ප්‍රකාශනයකි (එය සත්‍ය R වර්ගයකි) x. දෙවන තර්කය මෙහි ව්‍යුත්පන්නය ගෙන ඇති විචල්‍යයේ නමයි "x".

සැබවින්ම පිළිවෙලට යමක් දැකීමට අවශ්‍යද? ඉහත සඳහන් දේ විචල්‍යයකට පවරන්න, කියන්න dx. විචල්‍යයක් xසංඛ්‍යාත්මක දෛශිකයක් ලෙස අර්ථ දක්වන්න . ඉන්පසු ඉදිරිපත් කරන්න eval(dx). R ව්‍යුත්පන්නය තක්සේරු කරයි x!


දිග 19:

c(matrix(1,3,3),"a")

R හි c(), "සංයෝජනය" හෝ "සමෝච්ඡය" සඳහා කෙටියෙන්, එහි තර්ක වලින් දෛශිකයක් නිර්මාණය කරයි. දෛශිකවල මූලද්‍රව්‍යයන් එකම වර්ගයේ විය යුතු අතර සියල්ලටම දිග 1 තිබිය යුතුය. නමුත් ඒ ගැන ඔබට පිස්සු වැටීම වෙනුවට R ව්‍යුහයක් සහිත මූලද්‍රව්‍යයක් සමතලා කරයි, මේ අවස්ථාවේ දී අනුකෘතියක් ඇති අතර සියල්ල එකම වර්ගයට දමනු ඇත.

c()එක් වර්ගයක් පමණක් අඩංගු වන තර්ක නම් , කිසිදු වර්ගයක් වාත්තු කිරීමක් සිදු නොවේ, උදා: සියලු තර්ක තාර්කික නම් ( TRUEසහ FALSE), දෛශිකය සියලු තාර්කික වේ. එහි තාර්කික හා සංඛ්‍යා අඩංගු නම්, එය සියලු සංඛ්‍යා වනු ඇත. එහි චරිතය සහ ඕනෑම දෙයක් තිබේ නම්, එය සියල්ලම චරිතයක් වනු ඇත. එබැවින් අපගේ ස්නිපටය අපට මෙය ලබා දෙයි:

> c(matrix(1,3,3),"a")
[1] "1" "1" "1" "1" "1" "1" "1" "1" "1" "a"

3 by 3 න්‍යාසය සමතලා කර ඇති අතර "a" එකතු කිරීම සෑම දෙයක්ම අක්ෂර බවට පත් කර ඇති බව සලකන්න.


දිග 18:

(1-1/3-1/3-1/3)==0

යන්ත්‍ර නිරවද්‍යතාව පිළිබඳ පාඩමක්. මෙය නැවත පැමිණේ FALSE.


දිග 17:

example(readline)

මෙම example()ක්රියාව මඟින් ඔබට ඕනෑම බිල්ට් ක්රියාව භාවිත කරන ආකාරය පිළිබඳ උදාහරණයක් ලබා දෙනු ඇත. ඔබ භාවිතා කරන්නේ කෙසේදැයි සොයා ගැනීමට අවශ්‍ය නම් readline(), R ඔබට හොඳ පිළිතුරක් ඇත.

> example(readline)

readln> fun <- function() {
readln+   ANSWER <- readline("Are you a satisfied R user? ")
readln+   ## a better version would check the answer less cursorily, and
readln+   ## perhaps re-prompt
readln+   if (substr(ANSWER, 1, 1) == "n")
readln+     cat("This is impossible.  YOU LIED!\n")
readln+   else
readln+     cat("I knew it.\n")
readln+ }

readln> if(interactive()) fun()
Are you a satisfied R user?

නිහතමානී වීමට මාර්ගය, ආර්.


දිග 16:

acf(lh,t="part")

මෙම acf()කාර්යය කාල ශ්රේණියක් සඳහා autocorrelation කාර්යය පැමිණේ. lhආර් සමඟ නැව්ගත කරන දත්ත කට්ටලයක් එහි විස්තරය:

මිනිස් ගැහැනු සතෙකුගෙන් මිනිත්තු 10 ක පරතරයකින් රුධිර සාම්පලවල ලුටීන්සින් හෝමෝනය ලබා දෙන නිත්‍ය කාල ශ්‍රේණියක්, සාම්පල 48 ක්.

මෙම උදාහරණයේ දී, අර්ධ ගැලපීම දෙවරක් භාවිතා වේ : එක් වරක් ශ්‍රිත පරාමිතිය සමඟ සහ එක් වරක් පරාමිතිකයට ලබා දුන් නූල් අගය සමඟ. පූර්ණ පරාමිතිය නම typeසහ පිළිගත් අගයන් වේ "correlation", "covariance"සහ "partial". වැල තරම් අප පමණක් භාවිතා කළ හැකි නිසා, අද්විතීය ලෙස එය හඳුනා ගැනීම සඳහා සැපයිය යුතු වේ "part"සඳහා "partial"අපට අර්ධ autocorrelation කාර්යය (PACF) ලබා දෙන.

රූප විස්තරය මෙහි ඇතුළත් කරන්න


දිග 15:

p3d(bunny,p=99)

නැවතත් අප දකින්නේ කුප්‍රකට බනිස් (11). මෙම onionපැකේජය අපට 3D සැළසුම් කරමින් කාර්යය භාවිතා, මෙතෙක් වඩාත්ම ප්රයෝජනවත් දත්ත සමුදාය බැලීමට පවා හොදින් සලකනව දෙන ම p3d(). මෙය persp()භ්‍රමණ තර්කයක් ගන්නා පසුබිමෙහි මූලික ග්‍රැෆික් ක්‍රියාකාරිත්වය ලෙස හැඳින්වේ phi. පරාමිතිය නම් (13) අර්ධ ගැලපෙන භාවිතා, අපි සඳහන් කළ හැකිය p=වෙනුවට phi=.

රූප විස්තරය මෙහි ඇතුළත් කරන්න


දිග 14:

stats:::rgamma

R විවෘත මූලාශ්‍රයක් වන නමුත් ප්‍රභව කේතය බැලීමට ඔබ විශාරදයකු විය යුතු නැත; ඔබට පැකේජයේ නම සහ ශ්‍රිතය කොලොන් තුනකින් වෙන් කොට බැලීමට අවශ්‍ය කේතය ටයිප් කළ හැකිය :::. rgamma()ගැමා ව්‍යාප්තියෙන් අහඹු ලෙස අපගමනය ජනනය කරන ශ්‍රිතය නිර්වචනය කරන කේතය මෙය ඔබට ලබා දෙයි . මෙය ඉදිරිපත් කිරීමෙන් පහත දේ ලැබේ:

function (n, shape, rate = 1, scale = 1/rate)
{
    if (!missing(rate) && !missing(scale)) {
        if (abs(rate * scale - 1) < 1e-15)
            warning("specify 'rate' or 'scale' but not both")
        else stop("specify 'rate' or 'scale' but not both")
    }
    .External(C_rgamma, n, shape, scale)
}
<bytecode: 0x00000000098cd168>
<environment: namespace:stats>

එය ශ්‍රිතයක් භාවිතා කරන බව සලකන්න .External(). වෙනත් භාෂා දී රචනා කරන ලද මෙම ඇමතුම් කටයුතු, සාමාන්යයෙන් C සහ සඳහා යොදා ගනී, ආර් තැන පදනම බොහෝ සමන්විත භාෂා බව මූල කේතය wizardry ටිකක් උත්සාහ කරනවා. සංස්කරණය කරන්න: lo ව්ලෝ පෙන්වා දුන්නේ හුදෙක් මනුෂ්‍යයන්ට සැබවින්ම ඇසුරුම් කර ඇති .Internal()හා .Primitive()භාවිතා කරන සී කේතය බැලීමට හැකි pryrබවයි. ස්තූතියි, loVlo!


දිග 13:

sample(9,s=4)

මෙය එතරම් පෙනෙන්නේ නැත, නමුත් එය R හි ප්‍රබල සංකල්පයක් නිදර්ශනය කරයි: ක්‍රියාකාරී පරාමිතීන් අර්ධ වශයෙන් ගැලපීම . තුළ ඇති නම් පරාමිතීන් sample()කාර්යය වේ size, replaceසහ prob, නමුත් ඔබට විශිෂ්ඨ එය හඳුනා ගැනීමට නම් පරාමිතිය තරම් ලිපි ලබා දෙන්න. මේ අනුව සඳහා sample(), ඔබ භාවිතා කළ හැකිය s=වෙනුවට size=වෙනත් කිසිදු පරාමිතිය නම් කිරීෙමන් "S" ආරම්භ සිට. මෙහි කේතය 1 සිට 9 දක්වා නිඛිලවල සිට 4 වන ප්‍රමාණයේ අහඹු නියැදියක් තෝරා ගනී.


දිග 12:

LETTERS[-pi]

LETTERSඅකාරාදී පිළිවෙලට ඇණවුම් කර ඇති සියලුම ලොකු අකුරු අඩංගු බිල්ට් දෛශිකයක් ඇත. වෙනත් බොහෝ භාෂාවන් මෙන් නොව, ඔබට පාවෙන ලක්ෂ්‍ය අංකයක් භාවිතා කරමින් දෛශිකයක් සුචිගත කළ හැකිය. එතරම් සිත්ගන්නාසුලු කිසිවක් සිදු නොවේ; R නිඛිල කොටස ගනී. -දෛශිකයේ දර්ශකයට පෙර භාවිතා කිරීමෙන් එම දර්ශකය සමඟ ඇති මූලද්‍රව්‍යය දෛශිකයෙන් ඉවත් කරයි. piගොඩනඟන ලද නියතයක් අඩංගු වේ - ඔබ එය අනුමාන කළා - අතාර්කික අංකය. එබැවින් මෙය දෛශිකයෙන් 3 වන මූලද්‍රව්‍යය ඉවත් කර "C" මඟ හැර "Z" හරහා "A" ලබා දෙයි.


දිග 11:

plot(bunny)

තුළ onionපැකේජය, නමින් දත්ත සමුදාය තියෙනවා bunny. එය සැලසුම් කිරීමෙන් ඔබට සෑම විටම වඩාත්ම ප්‍රයෝජනවත් ග්‍රැෆික් විය හැකිය:

රූප විස්තරය මෙහි ඇතුළත් කරන්න


දිග 10:

????sample

ඔබ sample()ශ්‍රිතය පිළිබඳව සැබවින්ම ව්‍යාකූල වී ඇති බවත් ඔබට දැඩි උපකාර අවශ්‍ය බවත් පවසන්න. ?sampleR අත්පොත ඉහළට ඔසවා තැබීමේ සාමාන්‍යයට වඩා , ඔබ ප්‍රශ්න ලකුණු හතරක් වත් කරයි. ආර් ඔබේ දුක්ඛිත තත්වය අසා උදව් කිරීමට උත්සාහ කරයි ...

Contacting Delphi...the oracle is unavailable.
We apologize for any inconvenience.

අහෝ.


දිග 9:

isTRUE(1)

මුලදී මෙය R පාදක පැකේජයේ ඉතිරි කොටස වෙන් කිරීම සඳහා වන සම්මුතිය isසහ ශ්‍රිත නාමයේ පහත දැක්වෙන වචනය a සමඟ ප්‍රතික්ෂේප කරයි .. කෙසේ වෙතත්, එය අදාළ වන්නේ තර්කය යම් ආකාරයක ද යන්න පිළිබඳ තාර්කික පරීක්ෂණයකට පමණි, පහත (8). මෙම අවස්ථාවේ දී, අපි එය පරීක්ෂා කරන්නේ එය TRUEවර්ගයක් නොවේ ද යන්නයි. මෙය දැඩි අර්ථ දැක්වීමක් භාවිතා කරයි TRUE, එනම් 1 සාමාන්‍ය අර්ථයෙන් “සත්‍ය” නොවේ. isTRUE(1)ප්‍රතිලාභ FALSE.


දිග 8:

is.na(8)

වෙනත් බොහෝ ක්‍රමලේඛන භාෂාවන් මෙන් නොව, .ශ්‍රිතයේ සහ විචල්‍ය නම් වල වලංගු චරිතයකි. එය කිසිදු ආකාරයක ක්‍රමයක් හෝ උරුමක්කාරකමක් දක්වන්නේ නැත; එය නමේ කොටසක් පමණි. මෙම is.na()තර්කය ඇගයීමට යන්න කාර්යය චෙක්පත් NA(අතුරුදහන්) සහ ප්රතිලාභ TRUEහෝ FALSE.


දිග 7:

stop(7)

මෙය ආදාන සමඟ දෝෂ පණිවිඩයක් ලෙස දෝෂයක් නිකුත් කරයි. ශ්‍රිතයක් ඇතුළත කැඳවනු ලැබුවහොත්, ශ්‍රිතය ක්‍රියාත්මක කිරීම නතර වේ. නමුත් එය ශ්‍රිතයකින් පිටත ඇමතීමෙන් ස්ක්‍රිප්ට් එක නතර නොවේ. මෙම අවස්ථාවේ දී, ප්රතිදානය වේ Error: 7.


දිග 6:

x < -1

මෙය සුළු දෙයක් ලෙස පෙනුනද, එය පැවරුම් ක්‍රියාකරුගේ ප්‍රධාන විවේචනයක් පෙන්නුම් කරයි <-: එනම්, අවකාශය ස්ථානගත කිරීම අනුව අර්ථය වෙනස් වේ. සඳහන් කළ පරිදි, x <- 11 සිට පවරයි x. ඉහත පරිදි තනි ඉඩක් වෙන් කිරීම <සහ -1 ට වඩා අඩු -ද යන්න පිළිබඳ තාර්කික පරීක්ෂණයකට එය වෙනස් කරයි x. එම හේතුව නිසා බොහෝ දෙනෙක් =පැවරුම් සඳහා කැමැත්තක් දක්වති .


දිග 5:

x<<-1

සමාන <-'වශයෙන් <<-සෑම විටම නොතකා වර්තමාන විෂය ගෝලීය විෂය පථය විචල්ය පවරයි.


දිග 4:

x<-1

<-වත්මන් විෂය පථයේ විචල්‍යයන් පැවරීමට R භාවිතා කරයි . මෙම ස්නිපටය 1 සිට අගය දක්වා xඇත.


දිග 3:

!0i

මෙම !ක්රියාකරු සඳහා R යනු "නැහැ," සහ 0iසංකීර්ණ අංකය 0+0iහෙවත් සංකීර්ණ තලය 0. මෙම ප්‍රකාශය ඉදිරිපත් කිරීම TRUE0 සිට අසත්‍ය වේ.


දිග 2:

NA

මෙය විශේෂ R අගය ලබා දෙයි NA, එය "ලබා ගත නොහැක" යන්නෙන් අස්ථානගත අගයක් දක්වයි.


දිග 1:

T

මෙය නැවත පැමිණේ TRUE. ආර් දී, Tහා Fමෙම වීජ වටිනාකම් සඳහා නුබගැබ TRUEහාFALSE දැමිනි.


ඔව් ආර් "!"(T)!
Vlo

LoVlo: වෙත "!"(T)ඇගයීමට ලක් කරයි FALSE. කෙසේ වෙතත්, "යේ ආර්" ප්රකාශය කිසි විටෙකත් සාවද්ය නොවේ. ;)
ඇලෙක්ස් ඒ.

තවත් ඇතුළත් කිරීම් සඳහා මා වැඩි දියුණු කරන්නේ කෙසේද ???? "එම ප්‍රභව කේතය සොයා ගැනීම තරමක් මායාකාරී බවක් අවශ්‍ය වේ" .Internalසහ .Primitive->pryr::show_c_source(.Primitive("sum"))
Vlo

Lo ව්ලෝ: මම pryrපැකේජය ගැන අසා නැත . හරිම සිසිල්! එය පෙන්වා දීමට ස්තූතියි. ඔබ මෙතෙක් ඇතුළත් කිරීම් වලට කැමති වීම ගැන මම සතුටු වෙමි, සහයෝගයට ස්තූතියි. :)
ඇලෙක්ස් ඒ.

2
Em ජෙමුස් 42 අහ්, ඔබ data(bunny)මුලින්ම කළ යුතු බව පෙනේ .
ඇලෙක්ස් ඒ.

75

මොළය

ෆැක්ටොයිඩ්: බ්‍රේන්ෆක් (මොළය * සීකේ ලෙසද හැඳින්වේ) නාගරික මුලර් විසින් නිර්මාණය කරන ලද කුඩාම ටියුරින්-සම්පූර්ණ භාෂා පරිවර්තකය නිර්මාණය කිරීම සඳහා වූ පර්යේෂණාත්මක එසෝටරික් භාෂාවක් වන අතර එය වර්තමානයේ වඩාත්ම ජනප්‍රිය භාෂාවයි. එහි ඇත්තේ විධාන අටක් පමණි, ඉගෙන ගැනීමට පහසුය, නමුත් භාවිතා කිරීමට අපහසුය.

Brainf * ck සතුව සෛල 30000 ක් සහ චලනය කළ හැකි දර්ශකයක් සහිත ටේප් පාදක මතකයක් ඇති අතර, මේ ආකාරයට දෘශ්‍යමාන කළ හැකිය:

0 0 0 0 0 0
    ^

සමග ^ පෙන්නුම් කරන්නක් නියෝජනය චරිතය, සහ එක් එක් සෛල සඳහා අගයන් නියෝජනය කරන 0 ගේ.

බ්‍රේන්ෆක්ට උපදෙස් අටක් ඇත:

Instruction  C Equivalent              Description
+            mem[ptr]++;               Add one to the value under the cell
-            mem[ptr]--;               Subtract one from the value under the cell
>            ptr++;                    Go on cell to the right
<            ptr--;                    Go on cell to the left
,            mem[ptr] = getchar();     Read a ASCII character from input and put the result in the value under the cell
.            putchar(mem[ptr]);        Write a ASCII character to the output using the value under the cell
[            while (mem[ptr]) {        Start a while loop: Continue to matching ']' when value under the cell is 0
]            }                         End a while loop: Go back to matching '[' when value under the cell is NOT 0

C ට මොළය:

#include <stdlib.h>

int main(void) {
    unsigned char* mem = calloc(30000, sizeof(unsigned char));
    unsigned int ptr = 0;

    // Put your brainfuck code here, converted to the matching expressions under "C equivalent"

    return 0;
}

දිග 1 ස්නිපටය

එක් අක්‍ෂරයක් කියවා වත්මන් කොටුවට දමන්න.

,

මතකය (ආදාන: abc)

0 0 97 0 0 0
    ^

දිග 2 ස්නිපටය

වත්මන් කොටුවට එකක් එකතු කර දර්ශකය දකුණට හරවන්න.

+>

මතකය

0 0 1 0 0 0
      ^

දිග 3 ස්නිපෙට්

වත්මන් සෛලයෙන් එකක් ශුන්‍ය වන තෙක් ඉවත් කරන්න; වත්මන් කොටුව බිංදුවට සකසන්න

[-]

විය හැකි මතකය:

මතකය: (පෙර)

0 0 100 0 0 0
    ^

මතකය: (පසු)

0 0 0 0 0 0
    ^

දිග 4 ස්නිපෙට්

අදහස්: මොළය තුළ, උපදෙස් නොවන සෑම දෙයක්ම නොසලකා හරිනු ලැබේ. එම හේතුව නිසා පහත දැක්වෙන වැඩසටහන මුළුමනින්ම වලංගු (නමුත් හිස්) මොළයක් සහිත වැඩසටහනකි:

Hey!

දිග 5 ස්නිපෙට්

සරල බළල් වැඩසටහනක් (ප්‍රතිදානයට ආදානය ලියන්න)

,[.,]

ඔහුගේ අදහස් දැක්වීම සඳහා ටොම්ස්මේඩ්ට ස්තූතියි

දිග 6 ස්නිපෙට්

වත්මන් සෛලයේ අගය සෛලය දකුණට ගෙනයන්න (සෛලය දකුණට යැයි සිතමු 0, එසේ නොමැති නම් එය වත්මන් සෛලයේ අගය සෛලයේ වටිනාකමට දකුණට එකතු කරයි):

[>+<-]

පොදුවේ ගත් කල, මිනිසුන් විචල්‍යයක් ගෙනයාමට මෙම කේතය භාවිතා කරයි.

මතකය: (පෙර)

10 0 100 0 0 0
     ^

මතකය: (පසු)

10 0 0 100 0 0
     ^

දිග 25 ස්නිපෙට්

අක්ෂර හයක ආදානය ආපසු හරවා මුද්‍රණය කරන්න, ඉන්පසු සෑම ASCII අක්ෂරයක්ම (N-1) .. 1 (මෙහි N යනු පළමු ආදාන අක්‍ෂරයේ අගය වේ).

,>,>,>,>,>,.<.<.<.<.<[.-]

දිග 53 ස්නිපෙට්

main(){i=0;j=0;if(i>=0){if(j<=i)i+=1;i-=1;}return 0;}

මෙම කුඩා සී වැඩසටහන වෙස්වළාගෙන සිටින බ්‍රේන්ෆක් වැඩසටහනක් වන අතර අනෙක් අතට! ඇත්ත වශයෙන්ම, ඔවුන් (පාහේ) කරන්නේ එකම දෙයයි. මෙන්න "අදහස්" (C කේතය) නොමැතිව Brainfuck කේතය.

><+-

මට Brainfuck කේතය (සහ C කේතය) පැහැදිලි කිරීමට ඉඩ දෙන්න. ඔබට පෙනෙන පරිදි, එය සෛල දෙකක් ( iසහ j) භාවිතා කරයි . එය පළමු කොටුව වැඩි iකරයි ( 1 කින් වැඩි කිරීම). එවිට එය එකම සෛලය අඩු කරයි (අඩුවීමi කරයි 1 කින් ).

මෙය සමහර ප්‍රභව කේතයන් විවිධ භාෂා දෙකක් ලෙස සම්පාදනය කර එකම (ප්‍රායෝගිකව) ක්‍රියාත්මක කිරීමට හැකි වීම පිළිබඳ මෝඩ උදාහරණයකි.


2
,[.,]- අක්ෂර 5 ක්, බළල් වැඩසටහන
ටොම්ස්මිං කිරීම

13
මෙය මා දැක ඇති හොඳම "බ්‍රේන්ෆක් 101" විය හැකිය.
hoosierEE

දිග 6: එමඟින් එකතුව දකුණු කොටුවට ද, වම් ශුන්‍යයට ශුන්‍ය වේ. චලනය නොවේ, හරිද?
පිලිප් හග්ලුන්ඩ්

සංකල්පය වඩා හොඳින් පැහැදිලි කිරීම සඳහා 6 වන දිගට ව්‍යාජ විචල්‍යයක් එක් කරන ලදි. මෙම වැඩසටහන ඇත්ත වශයෙන්ම # 3 කොටුවට # 3 කොටුව එකතු කර # 3 0 කොටුව බවට පත් කරනු ඇත.
yyny

ඡන්ද 58 - ඔබට යාවත්කාලීන කළ හැකිද? :)
කොනර් ඕ බ්‍රයන්

65

සී ++

එහි පූර්ව සකසනය, සැකිලි, ලැම්බඩාස්, වර්ගයේ ගති ලක්ෂණ සහ කිසිවෙකුට කිසිසේත්ම තේරුම් ගැනීමට බලාපොරොත්තු නොවිය හැකි වෙනත් සංකීර්ණ අංගයන් සමඟ සී ++ එහි ප්‍රමිතියේ සෑම නව පරම්පරාවක් විසින්ම නැවත සොයා ගනු ලැබේ. බැදීමකට දේවල් කරන්න එහි විවිධාකාර ක්රම ගසාකෑම මගින්, එක් බැදීමකට ඔවුන්ගේ ශක්තිමත්භාවය පරීක්ෂා කිරීම සඳහා සංඛ්යා datatypes අනුයුක්ත කරමින් භෞතික ඒකක (උදා: ඔබ ප්රතිඵලය යෙදිය නොහැක ඉඩ සලසා දෙන පුස්තකාල වැනි ශුන්ය පොදු කාර්ය වියුක්තයක් ලියන්න පුළුවන් kg* mකිරීමටN )

දිග 1

#

සාමාන්‍යයෙන් පෙර සැකසුම් ප්‍රකාශයක් හඳුන්වා දීම, # තනිවම රේඛාවක් මත නැගී සිටිය හැකිය. එය සාරභූතව කිසිවක් අදහස් නොකරන අතර මා නොදන්නා බවක් පෙනේ.

දිග 2

%:

ඇත්ත වශයෙන්ම සෑම කෙනෙකුටම #යතුරක් නොමැත, එබැවින් C ++ (හොඳයි, එය පුරාණ C වෙතින් එය සැබවින්ම උරුම කර ගෙන ඇත) මෙම විකල්ප ටෝකනය (aka digraph ) සමඟ එය ලිවීමට ඔබට ඉඩ සලසයි.

දිග 3

??=

මෙය C ++ පිළිබඳ course තිහාසික පා course මාලාවකි. ක්‍රියාත්මක කිරීම මඟින් ඒවාට සහය දැක්විය හැකි වුවද, මේ දිනවල තවදුරටත් වලංගු නොවේ. මෙම අනුක්‍රමය එයට #සහය දක්වන පද්ධති වලට පරිවර්ථනය කර ඇත, නමුත් අමු වචනාර්ථයට බාධා නොකිරීමට, ඒවා තුළ එය අවසර නැත. ක්‍රියාත්මක කිරීම මඟින් සහයෝගය මුළුමනින්ම අතහැර දැමීමට තීරණය කළ හැකිය.

දිග 4

auto

සාමාන්‍ය කේත සමඟ වැඩ කිරීම පහසු කිරීම සඳහා නවතම (C ++ 11 සිට) නව නිපැයුම් වලින් එකකි. එය ප්‍රකාශනයේ වර්ගය අඩු කිරීම සඳහා වන අතර, C ++ 14 සිට එය ලැම්බඩා පරාමිතීන් අඩු කිරීම සහ ආපසු එන ශ්‍රිත වර්ග සඳහා පවා භාවිතා කළ හැකිය.

දිග 5

 catch

C ++ හි ඇති වෙනත් බොහෝ භාෂාවලින් දන්නා මූල පදයකි, නමුත් හොඳ මුග්ධ C ++ ක්‍රමලේඛකයා එය කිසි විටෙකත් භාවිතා නොකරයි. එහි ඉදිකිරීම්කරුවන් සහ විනාශ කරන්නන් සමඟ මුග්ධ C ++ පුළුල් ලෙස RAII (සම්පත් අත්පත් කර ගැනීම ආරම්භ කිරීම) නමින් හැඳින්වෙන මූලධර්මයක් භාවිතා කරයි හෝ සමහර විට එය වඩාත් උචිත ලෙස හැඳින්වීමට මා කැමති ආකාරය: SBRM (විෂය පථය සම්පත් කළමනාකරණය). ස්මාර්ට් පොයින්ටර් වැනි පංති නිසා යමෙකුට ගතිකව වෙන් කරන ලද සම්පත් වල ආයු කාලය (එය මතකය පමණක් නොවේ!) වෙනත් වස්තූන් සමඟ සම්බන්ධ කළ හැකිය. ඒවා විෂය පථයෙන් බැහැර වූ විට (උදා: විසි කළ ව්‍යතිරේකයකින්), මෙම වස්තූන් ස්වයංක්‍රීයව සම්පත් පිරිසිදු කරයි. මෙය ව්‍යතිරේකය ආරක්ෂිත සහ භාවිතා කිරීමට අවශ්‍ය නොවන කේත භාවිතා කිරීමට පහසුය catch.

දිග 6

[](){}

[]{}()

අදහස් දැක්වීමේදී ස්ටෙෆාන් සඳහන් කළ පරිදි, ඔබට []{}කෙටිම ලැම්බඩා වස්තුව ලෙස භාවිතා කළ හැකිය , එබැවින් මෙය ඇමතීමට ඇති කෙටිම ආකාරයයි ඇති ලැම්ඩා. පහත දැක්වෙන පා text ය පැරණි අනුවාදය සඳහා වේ:

බොහෝ විට ලැම්බඩාවේ කෙටිම ස්වරූපය වේ. සී ++ හි ලැම්බඩාස් යනු වස්තු (ක්‍රියාත්මක කිරීමේ අර්ථ දක්වා ඇති) ඒවා නිර්මාණය කර ඇති විෂය පථයෙන් කොටසක් ග්‍රහණය කරගත හැකි ([සින්ටැක්ස් මෙය පාලනය කරයි), සහ ඒවා කැඳවිය හැකි ය (() සින්ටැක්ස් මෙය පාලනය කරයි). ඔවුන්ගේ කේතයට ({} කොටස) මෙම විචල්‍යයන්ට ප්‍රවේශය ඇත්තේ ඒවායේ විෂය පථය තුළ ය. C ++ 14 හි හඳුන්වා දී ඇති ඔවුන්ගේ විකල්ප ප්‍රතිලාභ වර්ග අඩු කිරීම සහ ස්වයංක්‍රීය පරාමිති අඩු කිරීම සමඟ, ඒවා කැඳවිය හැකි යැයි අපේක්ෂා කරන සියලුම සම්මත පුස්තකාල ඇල්ගොරිතම සඳහා භාවිතා කිරීමේ මෙවලම වේ (උදා: තෙවන ශ්‍රේණිය :: වර්ග කිරීමේ පරාමිතිය).

දිග 7

virtual

වස්තු දිශානත වැඩසටහන්කරණයේ මූලික කොටස් වලින් එකක් වන C ++ හි ධාවන කාල බහුමාපකය භාවිතා කිරීම ආරම්භ කිරීම සඳහා වන මූලික පදය වේ. මෙය "ඔබ භාවිතා නොකරන දේ සඳහා ගෙවන්න එපා" යන මූලධර්මය අනුගමනය කරයි, වෙනත් භාෂාවලින් ඇති වීරාස් සියලු කාර්යයන් පෙරනිමියෙන් අථත්ය වේ. බහුවිධ පරමාදර්ශී භාෂාවක් වීම නිසා, මෙම මූල පදය භාවිතා නොකරන වැඩසටහන් හෝ පුස්තකාල දැකීම "සී ++ වස්තු නැඹුරු" යැයි සිතන අයට පුදුමයක් විය හැකිය, උදා: ඔවුන් සාමාන්‍ය ක්‍රමලේඛන මූලධර්මය අනුගමනය කරන බැවිනි.

දිග 8

override

අථත්ය මූල පදය සමඟ එකට වැඩ කිරීම, override කිරීම, සම්පාදකයා ඔබ වෙනුවෙන් වැඩි වැඩ කොටසක් කිරීමට C ++ සඳහා පසුකාලීන එකතු කිරීම් වලින් එකකි. එය භාවිතා කිරීමෙන්, ඔබ මූලික පන්තියේ අථත්‍ය ශ්‍රිතයක් අභිබවා යාමේ අභිප්‍රාය ප්‍රකාශ කරන අතර, ඔබ වැරැද්දක් කර ඇත්නම් සහ එම පන්තියට නිශ්චිත ශ්‍රිතයක් නොමැති නම් සම්පාදකයා දෝෂ සහිත වේ. පොදුවේ ගත් කල, ඔබේ කේතය බිටු සමඟ ගැටීමට වඩා අභිප්‍රාය ප්‍රකාශ කරන්නේ නම් එය හොඳ විලාසිතාවක් ලෙස සැලකේ.

දිග 9

constexpr

C ++ ට පසුකාලීන එකතු කිරීමක් වීම, constexprක්‍රමලේඛකයාට ශ්‍රිත හෝ විචල්‍යයන් සඳහා ප්‍රකාශ කිරීමට ඉඩ සලසයි, ඒවා සම්පාදනය කරන වේලාවේ දන්නා අතර ඒවා සම්පාදනය කරන වේලාවේදී ගණනය කළ යුතුය. මෙම කාර්යයන් සංයුක්ත කාල ප්‍රකාශන අවශ්‍ය සන්දර්භය තුළ භාවිතා කිරීමට ඉඩ දෙයි (උදා: අච්චු පරාමිතීන් හෝ අරාව ප්‍රමාණ ලෙස). බොහෝ සම්මත පුස්තකාල කාර්යයන් (හැකි නම්) දැනටමත් constexpr බැවින් ඒවා මෙහි භාවිතා කළ හැකිය.

දිග 10

for(i:c){}

යනු බහාලුමක් හරහා ඇති සම්පූර්ණ ලූපයකි, නැතහොත් ආධාරක std::beginසහ std::endඉටරේටර් ලබා ගැනීම වැනි ඉදිකිරීම් වැනි බහාලුම් වේ (එයට සී ස්ටයිල් අරා ඇතුළත් වේ). එය මූලික වශයෙන් සමාන වේ for(auto __i = std::begin(c); __i != std::end(c); ++__i){ auto& i = *__i; }. මෙය සාමාන්‍ය කේතයේ පහසුවෙන් ලූප වීමට ඉඩ සලසයි.

දිග 11

void f()&&;

සාමාජික කාර්යයන් සහ ඒවා කැඳවිය හැකි වස්තුවෙහි ගුණාංග ප්‍රකාශ කිරීමට නව ක්‍රමයකි. C ++ හි පෙර සංස්කරණ වලදී අපට void f() const;සම්පාදකයාට නියත වස්තු මත ශ්‍රිතය ඇමතීමට හැකි බව පැවසීමට පමණක් හැකියාව තිබුණි (මේ අනුව නියතයෙන් තොරව ඔබට ඒවා නියත නොවන වස්තු මත ඇමතිය නොහැක). &&R- අගය යොමු කිරීම් සඳහා වන වාක්‍ය ඛණ්ඩය දැන් අප සතුව ඇති ආකාරයටම එම ශ්‍රිතයන් අගයන් මත ඇමතීමට හැකි වේ.

දිග 12

int main(){}

මෙය බොහෝ විට ඔබට සබැඳිය සම්පාදනය කර ක්‍රියාත්මක කළ හැකි කෙටිම සම්පූර්ණ වැඩසටහන වේ. එය කිසිවක් නොකර 0 නැවත පැමිණෙනු ඇත. මෙම ප්‍රතිලාභය ඔබට C ++ හි ඇතිවිය හැකි විශේෂ අවස්ථා වලින් එකකි. සාමාන්‍යයෙන් කිසිවක් ආපසු ලබා දීම නිර්වචනය නොකළ හැසිරීමකි, නමුත් පිවිසුම් ලක්ෂ්‍යයේ ක්‍රියාකාරිත්වය සඳහා, කිසිවක් ආපසු ලබා දීම යනු 0 නැවත පැමිණීම නොවේ.

දිග 13

auto f()->int

යනු ශ්‍රිතයක ප්‍රතිලාභ වර්ගය ප්‍රකාශ කිරීමට තරමක් නව ක්‍රමයකි. සාමාන්‍යයෙන් ඔබ වර්ගය දැනටමත් දන්නේ නම් ඔබ මෙය නොකරනු ඇත, නමුත් සාමාන්‍ය ක්‍රමලේඛන වල අච්චු පරාමිතීන් සහ ඔබ භාවිතා කරන විචල්‍යයන් මත වර්ගය රඳා පවතින අවස්ථා ඕනෑ තරම් තිබේ. මේ ආකාරයට කිරීමෙන් මෙම පරාමිතීන් template<class T> auto f( const T& t ) -> decltype(t.foo())වෙනුවට තරමක් පහසු ප්‍රවේශයක් ලබා ගත හැකියtemplate<class T> decltype(std::declval<T>().foo()) g( const T& t ) { return t.foo(); }


2
;විකල්ප 1-වර්‍ග ස්නිපටයක් ලෙස භාවිතා කිරීමට මම යෝජනා කරමි , මන්ද එය පෙර සැකසුම් සාර්වයක් නොවන අතර ඔබට C ++ හි අක්ෂර 1 ක ප්‍රකාශයක් ලබා ගත හැකි වීම අවුල් සහගතය.
ජෝ ඉසෙඩ්

1
[](){}ලැම්බඩාවේ කෙටිම ස්වරූපය නොවේ: පරාමිති ලැයිස්තුව හිස් බැවින් එය මඟ හැරිය හැක. එබැවින් []{}කෙටිම ලැම්බඩා වේ. ඉතා සුළු වශයෙන්, ලැම්බඩා []{}()කෙටිම ක්‍රියාත්මක කිරීම වේ ;-) ideone.com/k8fAvs
stefan

@stefan: ඇත්ත වශයෙන්ම, මම එය සැමවිටම අමතක කරන්නේ එය එවකට ක්‍රියාත්මක නොවන බැවිනි;) මම එය පිළිතුරට එකතු කළෙමි.
ප්ලාස්මා එච්

@ ප්ලාස්මාහ් මම එයට වෛර කරමි, මන්ද එය ඇත්ත වශයෙන්ම ශ්‍රිතයක් ලෙස නොපෙනේ .. ;-)
ස්ටෙෆාන්

59

රීජෙක්ස්

දිග 2 ස්නිපටය

[]

JavaScript : කිසිම දෙයකට නොගැලපෙන හිස් අක්ෂර පන්තියක්.

PCRE , Java , Pythonre , Ruby (2.0 අනුවාදය මත පරීක්ෂා කර ඇත): සින්ටැක්ස් දෝෂයකි.

දිග 1 ස්නිපටය

.

., dot-all ලෙස හැඳින්වෙන, මට බැලීමට අවස්ථාවක් තිබූ සියලුම රසයන්ගෙන් ලබාගත හැකිය.

එය ගැලපෙන්නේ කුමක් ද?

දී g̨͜e҉̡͞n̵͢e͜͝r̷͝a͘l̢҉, ̡͟ ̕̕ ̴.̸̴̢̛́ තරග ͘a҉n̛͜͠ỳ̸ චරිතය ̴̕͢ex͝͞͞c҉ept̛ ̕f̴҉o͟͜r̴͢ නව ͡l͝i̸̧n͢͡e̶.͟

ජාවාPattern : පෙරනිමි ප්‍රකාරයේදී, මෙම කේත ලක්ෂ්‍ය 5 හැර, ඕනෑම කේත ලක්ෂ්‍යයකට තිත-සියල්ලම ගැලපේ \r\n\u0085\u2028\u2029. සමග UNIX_LINES(නමුත් තොරව මාදිලිය DOTALL), dot-සියලු හැර, ඕනෑම කේතය අවස්ථාවක තරග \n. DOTALLප්‍රකාරය සමඟ , තිත-සියල්ල ඕනෑම කේත ලක්ෂ්‍යයකට ගැලපේ. ජාවා 5 සිට, Patternකේත ලක්ෂ්‍යය මත ක්‍රියාත්මක වන බැවින් තාරකා අක්ෂර තිත්-සියල්ලට ගැලපේ.

පයිතන්re (2.7.8 සහ 3.2.5 මත පරීක්ෂා කර ඇත, 3.3+ මත වෙනස් විය හැකිය): පෙරනිමි ප්‍රකාරයේදී, තිත්-සියල්ල හැර වෙනත් ඕනෑම UTF-16 කේත ඒකකයකට (0000 සිට FFFF ඇතුළුව) ගැලපේ \n. re.DOTALLව්‍යතිරේකය ඉවත් කර .ඕනෑම UTF-16 කේත ඒකකයකට ගැලපේ. මෙම අනුවාද වල, reUTF-16 කේත ඒකක මත ක්‍රියාත්මක වන අතර, .කළමනාකරණය කරන්නේ තාරකා තලයේ අක්ෂරවල එක් කේත ඒකකයකට ගැලපීම පමණි.

.නෙට් : පයිතන් හා සමානයි. .NET හි තිත්-සියලු මාදිලිය හැඳින්වේ Singleline.

ජාවාස්ක්‍රිප්ට් (සී ++ 11 <regex>) : පෙරනිමි ප්‍රකාරයේදී, මෙම කේත ලක්ෂ්‍ය 4 හැර සෙසු ඕනෑම යූටීඑෆ් -16 කේත ඒකකයකට තිත-සියල්ලම ගැලපේ \n\r\u2028\u2029. සමග sධජ, dot-කිසිදු UTF-16 කේතය ඒකකය තරග. ජාවාස්ක්‍රිප්ට් යූටීඑෆ් -16 කේත ඒකක මත ද ක්‍රියාත්මක වේ.

PCRE : ගොඩ නැඟීමට විකල්පය මත පදනම් වන ක්රියා මත, dot-සියලු ඉවත් කළ හැකි \r, \nහෝ \r\n, හෝ සියලු 3 සී ආර් LF අනුපිළිවෙලවල්, හෝ සැකසුම් ආකාරය ඕනෑම යුනිකෝඩ් නව පේළියකට යොමු කිරීමේ අක්ෂරය අනුක්රමය. පෙරනිමි ප්‍රකාරයේදී, එන්ජිම ක්‍රියාත්මක වන්නේ කේත ඒකකය මත ය (8, 16, හෝ 32-බිට් කේත ඒකකය විය හැකිය), එබැවින් තිත්-සියල්ල නව රේඛා අනුක්‍රමයන් හැර ඕනෑම කේත ඒකකයකට ගැලපේ. යූටීඑෆ් මාදිලියේදී, එන්ජිම ක්‍රියාත්මක වන්නේ කේත ලක්ෂ්‍යය මතය, එබැවින් තිත්-සියල්ල නව රේඛා අනුක්‍රමයන් හැර ඕනෑම කේත ලක්ෂ්‍යයකට ගැලපේ. තිත්-සියලු මාදිලිය හැඳින්වේ PCRE_DOTALL.

PHP (අයිඩියෝන් මත පරීක්ෂා කර ඇත): PCRE, UTF-8 පුස්තකාලය ලෙස සම්පාදනය කර ඇති \nඅතර පෙරනිමියෙන් ඇති එකම නව පෙළ අනුක්‍රමය මෙයයි. තිත-සියලු මාදිලිය sධජය හරහා ප්‍රවේශ විය හැකිය .

Postgres : පෙරනිමි ප්‍රකාරයේදී, dot-all ව්‍යතිරේකයකින් තොරව ඕනෑම කේත ලක්ෂ්‍යයකට ගැලපේ.

රූබි (2.0.0 අනුවාදය මත පරීක්ෂා කර ඇත): පෙරනිමි ප්‍රකාරයේදී, .හැර වෙනත් ඕනෑම කේත ලක්ෂ්‍යයකට ගැලපේ \n. තිත-සියල්ල ප්‍රකාරයට mධජය (!) හරහා ප්‍රවේශ විය හැකිය .

s රූබි හි වින්ඩෝස් -31 ජේ කේතීකරණය දැක්වීමට ධජය භාවිතා කරයි.


ෆැක්ටොයිඩ්

Ŗ͞e̡͟҉ǵ͟͢e̴̢͘͡x̡́͞ ̛̀҉҉̢c҉̷̨a̸̛͞n҉̛͠ ̷̸̀p̴͠͡҉̵ą̧͜͢r̸̸̷̢͝s̢̀͡e̷̷̷͘͞ ̨̧̀H̨̧͜͜T̷͞M̷̛͜L͢.̴̡́ මට පසුව නැවත කියන්න. R̶̶̢̧̰̞̻̮̳̦̥ͭͯ̓̈ͯͤ̇͊͊͟ĕ̹̩̪͈͈͍̗͎̝͚̽̈ͨ̐̽ͪͮ̍͐ͮͧ̔̏̓ͣĝ̵̢̢̖̤̜̭͔͊͒ͦ͛ͤ͗ͬͧͪ̾͘͟eͦ̄ͭ̑̾҉̨̨̝̬̹̘̭͔͟͢x̣̻͓̠͈͕̥̜͚̝̫͚̳̾̍ͦ̑̈̋̌̉͊ͮ͗̄̆̒̚̚ ̸̦͈̥̬̺͇ͧͧ͐ͮ̌ͤ̈̒̆ͣ̈̏̔͊̐ç̨̬̪̳̦͎̖͕̦͔ͨ̿̓̈ȁ̸̳̺̠̭ͮ̓̐͘̕͜͡ņ̨̫͔͍̬̤̘͎͚̣̟̦͍̜ͭͭ̈ͦ̈̽͗ͥ̑͝͡ විග්රහ කළ ͉̭̫̰͔̝͓̼̮͚̻͎͎͉̐͗͗͊̇ͣ͒͗͑̆͐̐ͬ͛ͮ͝H̢̥͕̼͓̫͙̺̼̮ͣͦ̍ͨ͒̔̌T̪̦̻̦͖̞̤͒̑ͭ̐̑ͭͣ͐̒̉͊͜͜M̞̪͇͕̩͉͗ͧ̌ͯ͋̉̍ͭ̓̇̐̌͜͠Ĺ̷̨̳̘̯͚͓͛͌ͭ̉̍.ͯ͆̊ ͯ̇̓̏͐ͪ̋̈͑̕҉̷̠̰̼̤


36
ෆැක්ටොයිඩ් යොමු කිරීම ලබා නොගන්නා ඕනෑම කෙනෙකුට මට නරකක් දැනේ.
රොබොබෙන්ක්ලයින්

6
obrobobenklein ඔබේ වේදනාවට රහසිගත medicine ෂධයක් මම දනිමි: අපව දැනුවත් කරන්න!
දෝෂය

24
laflawr ප්‍රසිද්ධ ප්‍රශ්නය නොදන්නා අය සඳහා: stackoverflow.com/questions/1732348/… හි පළමු පිළිතුර ඔබ සොයන දෙයයි.
රොබොබෙන්ක්ලයින්

1
ඔබට සල්ගෝඩ් පා read ය කියවිය හැකිය, නමුත් ඒවා දෙපැත්තෙන්ම බැරෑරුම් ලෙස නොසලකන්න. සැල්ගෝගේ මාර්ගය අන්ධ ලෙස අනුගමනය කිරීම පැහැදිලිය, නමුත් සැල්ගෝ පා text ය සෑම විටම වැරදිය.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

12
HTML n HTh̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳, HTML විග්‍රහ කරන්නේ කෙසේදැයි අපට පෙන්වීමට ඔබ එම ඡන්ද සියල්ලම භාවිතා නොකරන්නේද?
mbomb007

57

ජේ

PS: ස්නිපෙට්ස් දැන් tryJ.tk සමඟ සම්බන්ධ වී ඇති අතර ඔබේ බ්‍රව්සරයේ ජාවාස්ක්‍රිප්ට් තුළ ධාවනය වන ඒවා සමඟ සෙල්ලම් කිරීමට ඉඩ දෙයි.

පීපීඑස්: මම ඇණවුම මාරු කළා; සම්බන්ධ වන පුද්ගලයින්ට සහ අනාගත යොමු කිරීම සඳහා මෙය වඩාත් අර්ථවත් කරයි.

පීපීඑස්: මම හිතන්නේ, කාල සීමාවන් නිසා, මම දිනකට එක් ස්නිපටයක් එකතු කරමි

factoid:

ජේ යනු ඒපීඑල්ගෙන් පැවත එන්නෙකි ( පවුල් ඉතිහාසය සඳහා මෙහි බලන්න ) විහිලු චරිත කට්ටලය us ණ කරයි.

දිග 1 ස්නිපටය

_

සංඛ්‍යා වචනාර්ථයට සම්බන්ධ වූ විට (ක්‍රියා පදයට ප්‍රතිවිරුද්ධව) J අනන්තය හා negative ණ දර්ශකය_ ලෙස භාවිතා කරයි- ) .

දිග 2 ස්නිපටය

a.

a.හැඳින්වේ අකාරාදිය සියලු 1 බයිට අනුලකුණු අඩංගු. එනිසා J වැනි අක්ෂර අඩංගු නොවන atoiබැවින් ඒවා හෝඩියේ සරල පෙනුමකි:a. i. 'z' =122

දිග 3 ස්නිපටය

i.9

i.ඒකාකාරව භාවිතා කරන විට පූර්ණ සංඛ්‍යා සඳහා වේ (එනම්, එක් තර්කයක් පමණි, නිවැරදි තර්කය සාමාන්‍යයෙන් y ලෙස හැඳින්වේ). ඩයැඩිකල් ලෙස භාවිතා කරන විට එය ඉහත උදාහරණයේ දී මෙන් දර්ශකයේ සේවය කරයි .

දිග 4 ස්නිපටය

!!6x

ජේ අත්තනෝමතික නිරවද්‍ය නිඛිල සහ තාර්කික සංඛ්‍යා සඳහා සහය දක්වයි . මෙය 6 හි සාධකීය (1747 ඉලක්කම් අංකයක) සාධකය ගණනය කරයි.

දිග 5 ස්නිපටය

^.^:_ 

One න එකක් ... පළමුව, ක්‍රියා පද (J ඇමතුම් කාර්යයන් ලෙස) තේමාව අනුව සංවිධානය කර ඇත. සියලුම ක්‍රියා පද on ාතීයකරණයට බැඳී ඇත. ^සඳහා exponentiation (සහ exp, monadically භාවිතා කරන විට ^.සඳහා ලඝු ගණක . ^:විශේෂ එකක් තමයි විදුලි බල උත්සවයකට කිහිප වතාවක් අදාළ වන සහයෝගීව (ඉහළ ගණයේ කාර්යය), හරි. තර්කය අනන්තය (විට _) එය (එහි වම් තර්කය ඉටු ආදර්ශය ^.එහි ම ප්රතිදානය මත) එය අභිසාරී දක්වා. ප්රතිඵලයක් වශයෙන්, ^.^:_නිරාකරණය පදයක් වන x = ln(x)ඕනෑම තර්කයක් නමුත් 1, අස්වැන්නක් සඳහා අයදුම් කළ විට 0.318132j1.33724.

දිග 6 ස්නිපටය

^0j1p1

හෝ ඒ හා සමානව

^o.0j1

ජේ හි අයිලර්ගේ අනන්‍යතාවය ඉහත සඳහන් කළ පරිදි ^වේ exp(). අත්තනෝමතික නිරවද්‍යතා නිඛිල සහ තාර්කිකත්වයට අමතරව, එය pi සහ සංකීර්ණ සංඛ්‍යා වල බලයන් සඳහා ද සහය දක්වයි. 0j1p1මාධ්‍යයන් (0 + j) * pi ^ 1.

දිග 7 ස්නිපටය

+/&.:*:

ඕනෑම දෛශිකයක 2-සම්මතයක් ගන්නා ක්‍රියා පදයක්. මෙය කරුණු 2 ක් පෙන්නුම් කරයි:

  • මෙම ඇතුළු පද ඇති Add ක්රියා පදයේ පැහැයට +තර්කය එක් එක් අංගයක් අතර එය ඇතුල් කර මුදල බවට. එබැවින් (0+1+2+3) = +/ i.4.

  • මෙම සහයෝගීව යටතේ භාවිතා කරන විට v &.: u yසමාන වේ vi u v yකොහේද, viයනු මුහුණත (සාමාන්යයෙන් ප්රතිලෝම).

ඔව්, ක්‍රියාකාරී ප්‍රතිලෝම ගැන ජේ දනී. මේවා සංයෝජනය කිරීමෙන් ස්නිපටයේ ක්‍රියා පදය සමාන වේ %: @: (+/) @: *:, නැතහොත් sqrt(sum(y.^2))මැට්ලැබ්.

දිග 8 ස්නිපටය

$#:I.@:,

දෙබලක තර්ක කිරීමට කිසිදු සඳහනකින් තොරව ක්රියා පද 3 සමන්විත වේ. මෙය J ​​හි ඇති දේ නිහ ac (ලක්ෂ්‍ය රහිත) ක්‍රමලේඛනය ලෙස හැඳින්වේ . දෙබලක f g h, මොනාඩික් නඩුවේ (මෙම උදාහරණයේ දී මෙන්) සමාන වේ (f y) g (h y). දෙබලක ලෙස, බහුමානීය අරා යනු ජේ හි අභ්‍යන්තර කොටසකි. "දර්ශක" දෛශිකයක ඇති දර්ශක නැවත ලබා දෙයි, නමුත් ඉහළ මානයන් දක්වා විහිදෙන්නේ නැත. මෙම උදාහරණය හැඩය , ප්‍රතිදේහය සහ I.@:,ඉහළ මානයන්හි අරා සඳහා I ක්‍රියාත්මක කරන දෙබලක 3 ටයින ලෙස භාවිතා කරයි .

 ($#:I.@:,) 5 = i. 5 5 NB. indices of 5 in i. 5 5

දිග 9 ස්නිපටය

<"1 i.4 6 

කොටු කළ අරා යනු J හි දත්ත වර්ගයක් වන අතර එය විෂමජාතීය අන්තර්ගතයන් (වර්ගය සහ ප්‍රමාණය යන දෙකම) එක් අගයකට ඒකාබද්ධ කිරීමට ඉඩ දෙයි. මොනාඩික් < පෙට්ටි එය තර්කය. ශ්‍රේණිය යනු ජේ හි කේන්ද්‍රීය සංකල්පයක් වන අතර ඉහළ මානයන්හි අරා දෙසට ක්‍රියා පද ස්වයංක්‍රීයව විස්තාරණය කිරීමට ඉඩ දෙයි. නාම පද සහ ක්‍රියා පද දෙකටම ශ්‍රේණියක් ඇත.

නාම පද ශ්‍රේණිය යනු ඕනෑම නාම පදයක මානයන් ගණන වන අතර එය ක්‍රියා පදයෙන් $@$ඔබට පැවසිය හැකිය. උදාහරණයක් ලෙස i. 2 3 43 වන ශ්‍රේණියේ පෙළක් ඇත.

ක්‍රියාපද ශ්‍රේණිය යනු ක්‍රියා පදයක් අදාළ වන ශ්‍රේණියයි. සෑම ක්‍රියාපදයකටම ආවේණික තරාතිරමක ඇති අතර එය මූලික සංයෝජනයෙන් විමසිය හැකිය . v b. 0ක්‍රියාපදයේ මොනාඩික්, ඩයැඩික් වම් සහ ඩයැඩික් දකුණු ශ්‍රේණිය සඳහා අංක 3 ක් ලබා දෙයි v.

ක්‍රියා පදයක් ක්‍රියා පද ශ්‍රේණියට සමාන ශ්‍රේණියේ නාම සෛල මත ක්‍රියා කරන අතර ප්‍රති results ල නාම පද rank-verb rankරාමුවකට ආදේශ කරයි . ඒ ක්රියා පදයේ ගේ නිලය භාවිතා සීමා කළ හැකි නිලයට සහයෝගීව , මෙහි සිදු කරන අයුරින්, බොක්සිං නිලය 1 සෛල (පේළි) _ නිලය මත වැඩ කරනවා වෙනුවට, එනම්. බොක්සිං මුළු අරාව. තරාතිරම පිළිබඳ වැඩි විස්තර මෙහි සොයාගත හැකිය .

දිග 10 ස්නිපටය

<./ .+~^:_

මෙම ස්නිපටය යනු බර කිරන ලද ඩිග්‍රැෆ් වලට වඩා කෙටිම මාර්ගය ගණනය කරන ක්‍රියා පදයකි . එය අවම ( <./) සහ තිත් සංයෝජනය හඳුන්වා දෙයි . තිත් සංයෝජනය යනු අනුකෘති නිෂ්පාදනයේ සාමාන්‍යකරණයකි, එය මෙසේ ලිවිය හැකිය +/ . *. පොදුවේ ගත් කල, lv යනු ක්‍රියා පදයේ වම් ශ්‍රේණිය වන ස්ථානයට u . vසමාන වේ u@(v"(1+lv,_)). (ශ්‍රේණි සඳහා ඉහත බලන්න)

එනිසා අභ්‍යන්තර ක්‍රියාපද <./ .+~අයිතමය සියලු k සඳහා y(i,j)අවම වශයෙන් ආදේශ කරයි y(i,k)+y(k,j).

^:_ අභිසාරී වන තෙක් මෙම පියවර නැවත සිදු කරයි.

උදාහරණය, ​​මුල් හා කෙටිම මාර්ග දුර පෙන්වීම:

(]; <./ .+~^:_ ) wtm=: _6]\0 2 5 _ _ _ _ 0 4 1 3 _ _ _ 0 _ _2 _ _ _ 4 0 _ 5 _ _ _ _1 0 6 _ _ _ _ _ 0

දිග 11 ස්නිපටය

<.@o.10x^99

මෙම ස්නිපටය විශේෂ කේතයක් හඳුන්වා දෙයි : සමහර ජේ කේතයන් කිසියම් භාවිත නඩුවක් සඳහා විශේෂයෙන් ලියා ඇති කේත මඟින් සහය දක්වයි, විග්‍රහ කරන වේලාවේදී හඳුනාගෙන ප්‍රශස්ත කර ඇත; එක්කෝ වැඩි නිරවද්‍යතාවයක් සඳහා (මෙහි දී මෙන්) හෝ ඉහළ කාර්ය සාධනය සඳහා ( විශේෂ සංයෝජන බලන්න )

මෙම වාක්‍ය ඛණ්ඩයේ ඉලක්කම් 99 ක් ලබා දෙයි (දශම ස්ථාන 99 ක් මාරු කළද). විශේෂ කේතය නිශ්චිත වාක්‍ය ඛණ්ඩයක් මත රඳා පවතී, සාමාන්‍යයෙන් සමාන වන්නේ ස්නිපෙට් කේතය තරම් නිරවද්‍ය නොවේ: <.o.10x^99 දීර් extended නිරවද්‍යතාවය නැති කරයි.

දිග 12 ස්නිපටය

($-.1:)($,)]

වරින් වර, ඔබ අවසන් වන්නේ දත්ත වලින් තෝරා ගැනීම් නිසා, තනි මානයන් ක්‍රියාත්මක වන අවස්ථාවන්හිදී ය. මැට්ලැබ් හි මිරිකීම ලෙස හැඳින්වෙන මෙම පහසු උපයෝගීතාව සියලු තනි මානයන් මිරිකා ගනී. දෙබලක වම් තානය ($-.1:)ඒවා නොමැතිව සියලු මානයන් ලබා දෙන අතර මැද එක ($,) රැලි සහිත අරාව රඳවා තබා ඇති මානයන් වෙත නැවත සකස් කරයි. නිවැරදි ටයින් ]සේවය කරන්නේ මෙය දෙබලක බවට පත් කිරීම සඳහා වන අතර නිවැරදි තර්කය සඳහන් කරයි.

දිග 13 ස්නිපටය

1 :'-u%u d.1'

නිව්ටන්ගේ ක්‍රමය මඟින් අවකලනය කළ හැකි ශ්‍රිතයක මූලයක් ආසන්න වශයෙන් සොයා ගනී. මෙම පැහැදිලි ඇඩ්වර්ටරය මූල සොයන ශ්‍රිතයට යෙදිය යුතු අතර එය ක්‍රියා පටිපාටියේ එක් පියවරක් නියෝජනය කරයි. uයනු ශ්‍රිතය සඳහන් කරන තර්කයයි, එය ඇඩ්වර්ටරය යොදන මොහොතේම ප්‍රතිස්ථාපනය වේ. d. සංකේතාත්මකව ව්‍යුත්පන්න කරන ලද සංයෝජනයක් වන අතර, මෙහි D.සංඛ්‍යාත්මකව සමාන වන ප්‍රතිස්ථාපනය කළ හැකිය (නමුත් ඉහළ ශ්‍රේණියේ ශ්‍රිතවලට අදාළ වන විට වෙනස් වේ). මෙහි ප්‍රති result ලය වන්නේ දෙබලක ( එහි ව්‍යුත්පන්නයෙන් බෙදූ) කොක්කක් තර්කයෙන් අඩු කිරීමයි.u

උදාහරණයක් වශයෙන්:

(_2 + *:) (1 :'-u%u d. 1')^:_ ] 1 NB. root of x^2-1; ] is there to avoid combining _ and 1 into an array.

දිග 14 ස්නිපටය

(%-.-*:)t.i.10

ටේලර් ප්‍රසාරණය කිරීමෙන් ෆිබොනාච්චි ශ්‍රේණියේ පළමු අංක 10 x / (1 - x - x^2). කොක්ක විශ්ලේෂණය කිරීමෙන් %-.-*:ලබා දේ (y % (-.-*:) y) = (y % ( (1 - y) - *: y).

දිග 15 ස්නිපටය

(#{.+//.)!/~i.9

ෆිබොනාච්චි ශ්‍රේණියේ තවත් පියවරක්. මෙවර වෙනත් කෝණයකින්; පැස්කල්ගේ ත්‍රිකෝණයෙන් ආරම්භ වේ '! /~i.9'.

/ඩයැඩිකල් ලෙස භාවිතා කරන විට වගුව යන්නෙන් අදහස් වන්නේ , එහි එක් එක් සෛල අතර බැඳී ඇති ක්‍රියා පදය යෙදීමෙන් x සහ y තර්ක අතර ක්‍රියාකාරිත්වයේ වගුවක් ලබා දීමයි. මෙම අවස්ථාවේ දී සංයෝජනය (හෝ පිටත)! ලෙස ඩයැඩිකල් ලෙස භාවිතා වේ. ක්‍රියා පදය පරාවර්තක කරයි , එනම්. එහි නිවැරදි තර්කය වම් පදය ලෙස භාවිතා කරන්න.~

ඇඩ්වර්ටරය /.අමුතු එකක් වන අතර, එය අරාවෙහි ප්‍රති-විකර්ණ දිගේ ක්‍රියා පදය අදාළ කරයි (එනම් මෙහි උත්සාහ </.!/~i.5කරන්න )

එබැවින් මෙම ස්නිපටය පැස්කල්ගේ ත්‍රිකෝණයේ පළමු ප්‍රති-විකර්ණ 9 හි එකතුව ගනී, එය තවත් සිදුවීමක් වන ෆිබොනාච්චි ශ්‍රේණියක් වේ.

දිග 16 ස්නිපටය

;/@~.,. <"0@#/.~:

හරි, මම 16 ට යන්නට ඉඩක් එකතු කළා :). මෙම ස්නිපටය යතුර භාවිතා කරමින් දෙබලක නිරූපණය කරයි : තර්කයේ ඇති සියලුම අයිතම සහ ඒවායේ සංඛ්‍යාත ලැයිස්තුගත කිරීම.

x u/. yx අද්විතීය වන කුට්ටි වල හෝ ජේ : (=x) u@# y, ස්වයං-වර්ගීකරණය කොතැනද යන්න ඔබට අදාළ =වේ , එමඟින් in හි දිස්වන ස්ථානවල 1 ක් අඩංගු බූලියන් අරාවක් ජනනය කරයි . මෙන්න එය ප්‍රත්‍යාවර්තකව යොදනු ලැබේ, එබැවින් y හි එක් එක් අද්විතීය අයිතමය මත ටැලි ක්‍රියාත්මක කරමින්, දර්ශන ගණන ගණනය කරයි.nub

ජේ හි බොහෝ ක්‍රියා පද නබ් අනුපිළිවෙල තබා ඇති හෙයින් (නිදසුනක් ලෙස මැට්ලැබ් හි තර්කයට අනුව වෙනස් වන අද්විතීය අයිතමවල පෙනුමේ අනුපිළිවෙල unique) මෙහි දී සිදු කර ඇති පරිදි අයිතම ඒවායේ සංඛ්‍යාතවලට ඇලවීම සඳහා මෙය භාවිතා කළ හැකිය. ;/@~.සියළුම අයිතමයන්ගේ කොටු ලැයිස්තුවක් සෑදීමට භාවිතා කරයි.

ශ්‍රේණියේ පවතින සංකල්පය නිසා මෙම කේතය ඕනෑම මානයක් සඳහා ක්‍රියා කරන බව සලකන්න .

දිග 17 ස්නිපටය

*./ @:(#&>)@C.@A.

ප්‍රේරණයන් පිළිබඳව ජේ ප්‍රාථමිකයන් කිහිපයකට සහය දක්වයි:

  • Anagram A. Monadically එය Anagram දර්ශකය සොයා ගනී, dyadically, එය වම් තර්කයේ ඇනග්‍රෑම් දර්ශකය මගින් නියම කර ඇති ප්‍රේරණය නිවැරදි තර්කයට අදාළ වේ.
  • චක්‍රය - පාරගම්ය සී. ප්‍රේරණයන්හි සෘජු හා චක්‍රීය නිරූපණය අතර පරිවර්තනය වේ.

මෙම ස්නිපටය යනු ඇනග්‍රෑම් දර්ශකයක් වමට (0 සහ 0 අතර !#y) ගෙන යන ක්‍රියා පදයකි. පසුව, එය චක්‍රයේ දිගෙහි LCM ගණනය කරයි , එනම්. ඔබ මුල් අරාව නැවත ලබා ගන්නා කාල සීමාව:*./#&>

]n=: (p=:?!9) *./ @:(#&>)@C.@A. i.9 NB. period of a random permutation
p&A.^:n i.9 NB. applies permutation n times.

දිග 21

<:@(#/.~)@(i.@#@[,I.)

මෙම කුඩා ක්‍රියා පදය පැමිණෙන්නේ "සංඛ්‍යාන / පදනම්" ඇඩෝනයෙනි , එය හිස්ටෝග්‍රෑම් ලෙස හැඳින්වේ . එය හරියටම කරන්නේ, බින් ආරම්භක ලැයිස්තුවක් ලබා දී ඇති ]bn-1,bn]විට, bn යනු බින් අංක n හි ආරම්භය වන කාල පරාසය තුළ දත්තවල සියලු සිදුවීම් සාරාංශ කිරීමයි .

මෙහි පරතරයI. සොයා ගැනීම සඳහා එය අන්තර් කාල දර්ශකය ගසාකයි :

Y හි x හි අයිතමයක හැඩය තිබේ නම්, x {y යනු අවම negative ණාත්මක නොවන j වේ, එනම් j {x අනුපිළිවෙලෙහි y අනුගමනය කරයි, නැතහොත් #x y අනුගමනය කරන්නේ නම් {: x අනුපිළිවෙලෙහි හෝ x තිබේ නම් අයිතම නැත.

එක් එක් කාල පරතරයේ එකතුව සෑදීම ස්නිපෙට් 16 හි උද්දීපනය කර ඇති පරිදි යතුර භාවිතයෙන් සිදු කෙරේ.

Tryj.tk සමඟ සම්බන්ධ කර ඇති ස්නිපටය මෙම හිස්ටෝග්‍රැම් භාවිතා කරමින් මධ්‍යම සීමාවන් ප්‍රමේයය පෙන්නුම් කරයි:

(bins=:(%~>:@i.)10) ( [ (graph=:(,&":"0 1 '#'#"0 1~])) (histogram=:<:@(#/.~)@(i.@#@[,I.)) ) (+/%#) ?5 200 $ 0

දිග 22

=,&(+/)(~:#[)e.&~.~:#]

ජේ හි විනෝදය මෙය මහ මොළකරු එන්ජිමක් ක්‍රියාත්මක කරන අතර රහස් අරා වම් තර්කයක් ලෙසත් අනුමාන කිරීම දකුණ ලෙසත් ගනී. ආපසු ලබා දුන් අගයන් වන්නේ සුදු සහ කළු කූ gs ් of ගණනයි. වෙන් කොට:

NB.   ExactMatch: checks where digits correspond:
ExactMatch =: =

NB.   GoodDigitWrongPlace: Copies non-matched numbers from both arguments (left and right
NB.   pairs of parentheses, and checks them for same elements(e.), after eliminating
NB.   doubles in both (&~.)
GoodDigitWrongPlace =: (~: # [) (e.&~.) (~: # ])

NB.   Piecing the conditions together, after summing the booleans:
mm =: ExactMatch ,&(+/) GoodDigitWrongPlace

වැනි භාවිතා කිරීමට

secret (=,&(+/)(~:#[)e.&~.~:#]) guess

කොහේද secretසහ guessඕනෑම අරාවක් තිබේ. එය ඇත්ත වශයෙන්ම ඕනෑම දත්ත වර්ගයක් සමඟ ක්‍රියා කරයි.


17
හොඳයි, එක්කෝ ඔබට කියවිය නොහැකි අමුතු සංකේත රාශියක් ලැබේ, නැතහොත් ඔබට කියවිය නොහැකි ASCII සංකේත රාශියක් ලැබේ. ඔබේ වස ගන්න.
ජෝන් ඩ්වොරක්

16
AnJanDvorak ඔබ ඉගෙන ගන්නා තෙක් සියලුම භාෂා කියවිය නොහැක. ;-)
ගරෙත්

5
මම දිගු, විස්තරාත්මක නම් ආධාර කේත තේරුම් ගැනීම සඳහා සිතුවෙමි. එවිට මම ලදී දැනුවත් .
hoosierEE

Are ගරෙත් නමුත් ඔබ ඒවා ඉගෙන ගත් පසුවත් සියල්ල කියවිය නොහැක . කිසිම නමක් නම් කරන්නෙ නෑ.
දෝෂය

46

ආර්පීඑල් (රෙඩ්ස්ටෝන් ක්‍රමලේඛන භාෂාව) [සහ Minecraft]

මෙය අපට සැබෑ ක්‍රමලේඛන භාෂාවක් ලෙස සැලකිය හැකිද නැද්ද යන්න පිළිබඳ විශාල පියවරකි, නමුත් අපි කෙසේ හෝ උත්සාහ කරමු. තවද, මෙම "භාෂා දෙක" ප්‍රායෝගිකව සමාන බැවින්, මම ඒවා ඒකාබද්ධ කරමි, සමහර විට "Minecraft" භාෂාවෙන් (රෙඩ්ස්ටෝන්, ආදිය) සහ සමහර විට ආර්පීඑල් හි ස්නිපෙට් පළ කරමි. එසේම, බොහෝ ස්නිපෙට් Minecraft හි ඇති බැවින්, ඉඩ ඉතිරි කර ගැනීම සඳහා පින්තූරවලට වඩා පින්තූරවලට සබැඳි පළ කරමි. මීට අමතරව, සියළුම ස්නිපෙට් සාමාන්‍ය රෙඩ්ස්ටෝන් නොව මයින්ක්‍රැෆ්ට් හි ක්‍රමලේඛන සංකල්ප වේ (එනම් රතු ගල් දොරවල් නොපෙන්වයි). අක්ෂර බයිට් වලින් (ආර්පීඑල් වලින්) හෝ මේ අනුව (මයින්ක්‍රැෆ්ට් වලින්) ගණනය කෙරේ .

ෆැක්ටොයිඩ්:

ආර්පීඑල් යනු ටොෂා නව නිපැයුම්කරුගේ ක්‍රමලේඛන භාෂාව වන අතර එය කේතය මයින්ක්‍රැෆ්ට් රෙඩ්ස්ටෝන් සහ විධාන කොටස් බවට පරිවර්තනය කරයි. එයට ආදාන සහ ප්‍රතිදානය, ලූප, පූර්ණ සංඛ්‍යා හැසිරවීම, ප්‍රේරක ශ්‍රිත, මුල් සහ තවත් බොහෝ දේ කළ හැකිය.

දිග 1:

බොත්තමක් (බයිට් 1) යනු Minecraft හි සරලම ආදානයයි. එයට "වැඩසටහනක්" ආරම්භ කිරීමට හෝ නැවැත්වීමටද හැකිය. ඒ හා සමානව, ලීවරයක් (බයිට් 1 ක් ද) තවත් ආදාන ආකාරයක් වන අතර, වැඩසටහන “ඔන්” සහ “ඕෆ්” තත්වයක් ඇති බැවින් වැඩසටහන ආරම්භ කිරීමට සහ නැවැත්වීමටද භාවිතා කළ හැකිය. මතක තබා ගත යුතු දෙයක් නම්, Minecraft යනු වචනාර්ථයෙන් ත්‍රිමාණ ක්‍රමලේඛන භාෂාවක් වන බැවින් වැඩසටහනේ බොත්තම / ලීවරය ඇති තැන විශාල වෙනසක් කළ හැකිය.

දිග 2:

රෙඩ්ස්ටෝන් ලාම්පුවකට සවි කර ඇති බොත්තමක් ඔබේ මූලික පූසා වැඩසටහනයි. එය ආදානය (බොත්තමක් හෝ ලීවරයක් සමඟ, 0හෝ 1( offහෝ on)) ගෙන පහනෙන් ආලෝකය ලෙස 0හෝ 1( offහෝ on) ලෙස ප්‍රතිදානය කරයි .

රූප විස්තරය මෙහි ඇතුළත් කරන්න

දිග 3:

පහත දැක්වෙන පරිදි, මෙය කෙටිම ප්‍රභව කේත වෙනස් කිරීමේ වැඩසටහන් වලින් එකකි (ඔබට Minecraft සමඟ ධාවන වේලාවේදී ප්‍රභවය වෙනස් කළ හැකිය!). දැන්, මෙම විශේෂිත එකෙන් කිසිඳු ප්‍රයෝජනයක් නැත, නමුත් සංකල්පය අනෙක් අය සමඟ ඒකාබද්ධ වී පුදුමාකාර වැඩසටහන් කිහිපයක් නිර්මාණය කළ හැකිය (වැඩි දියුණු කිරීම් සමඟ). ක්‍රියාත්මක වන විට, මෙම වැඩසටහන එහි ආදාන ප්‍රභවය ඉවත් කරන අතර නැවත ක්‍රියාත්මක කිරීමට නොහැකි වේ. රූප විස්තරය මෙහි ඇතුළත් කරන්න

දිග 4

මෙම "ස්නිපටය" සැබවින්ම සංකල්ප දෙකක් පෙන්වයි: ප්‍රමාදය සහ NOT ගේට්ටුව. ප්‍රමාද වීම සිදු කරනු ලබන්නේ රෙඩ්ස්ටෝන්-ටික් ප්‍රමාදයක් ඇති ඇතැම් රතු ගල් මූලද්‍රව්‍ය භාවිතා කරමිනි . රතු ගල් ටික් එකක් තත්පරයෙන් දහයෙන් එකකට සමාන වේ. විවිධ රෙඩ්ස්ටෝන් සංරචක වලට විවිධ ප්‍රමාදයන් ඇත: විදුලි පන්දමකට 1rt ප්‍රමාදයක් (1 රෙඩ්ස්ටෝන්-ටික්), සංසන්දකයෙකුට 1rt ප්‍රමාදයක් ඇත, පුනරාවර්තකයට 1, 2, 3, හෝ 4rt ප්‍රමාදයක් තිබිය හැකිය, එය සකසා ඇති ආකාරය අනුව. මෙම උදාහරණයේ දී, රෙඩ්ස්ටෝන් පුනරාවර්තනය 4rt ප්‍රමාදයකට සකසා ඇත.

ඊළඟට NOT ගේට්ටුව. NOT ගේට්ටුව ආදානය ගෙන එය ප්‍රතිලෝම කරයි. එබැවින් මෙම සැකසුම තුළ, ආදානය අක්‍රිය නම් ප්‍රතිදානය ක්‍රියාත්මක වන අතර ආදානය සක්‍රිය නම් ප්‍රතිදානය අක්‍රිය වේ.

දිග 5

OR ගේට්ටුව Minecraft හි ඉටු කිරීමට ඉතා පහසුය. එකම ප්‍රතිදානයට ආදාන දෙකක් සම්බන්ධ වේ. එය එයයි. විහිලු උපක්‍රමයක් හෝ කිසිවක් නැත, එය ඉතා සරල ය.

රූප විස්තරය මෙහි ඇතුළත් කරන්න

දිග 6

ඔබේ "කේතය" සංයුක්ත කිරීම සඳහා උපදෙස් මෙන්න. ආදාන දෙකක සං signal ා ශක්තිය අනුරූප නිමැවුම් වලට බාධා නොකිරීමට තරම් කුඩා බව ඔබ දන්නේ නම්, ඔබට රතු ගල් ගල් දකුණු නෙක්ට් එකිනෙක එකිනෙකට සම්බන්ධ කළ හැකිය. පහත උදාහරණයේ දී, සරල ආප්ප ටයිමරයක් ඇත, එය සෑම ආප්පයකම තත්පර 0.5 කින් පමණ භාණ්ඩ පෙරළා මාරු කරයි, සං 1 ා ශක්තිය 1 ක් නිපදවන සංසන්දකයන් සමඟ සම්බන්ධ කර ඇත. මෙයින් අදහස් කරන්නේ පිටවීම් දෙක එකිනෙකට බාධා නොකරන බවයි. නිදසුනක් ලෙස, ලාම්පු ඇත්තේ නිරූපණ අරමුණු සඳහා පමණක් වන අතර මුළු වාරණ ගණනට ගණන් නොගන්න.

රූප විස්තරය මෙහි ඇතුළත් කරන්න


7
ඔබ 13 ඉහළට, මට මෝර් වැඩසටහන් 10 ක් කළ හැකිද?
Rɪᴋᴇʀ

4
ඔබේ වැඩසටහන් කිසිවක් ඇත්ත වශයෙන්ම ආර්පීඑල් හි ලියා නැත, එබැවින් එය එලෙසින් ඉවත් නොකරන්න. මෙය තනිකරම Minecraft "කේතය" වේ.
mbomb007

2
ඔබට වැඩසටහන් 14 ක හිඟයක් ඇත m8. ඔබේ මනසෙහි ඇති දේ දැකීමට මා කැමතිය;)
කොනෝර් ඕ බ්‍රයන්

4
ඔයා 21 ඉහළට, මට මෝර් වැඩසටහන් 15 ක් කරන්න පුළුවන්ද?
wizzwizz4

1
ඔබ හස් 29 ඉහළට, මට මෝර් වැඩසටහන් 23 ක් කළ හැකිද?
bb010g

42

ග්නූ සෙඩ්

මම වඩාත් සීමාකාරී අවශ්‍යතාවයක් ස්වයං-පැනවීමක් කරමි - සියලුම ස්නිපෙට් සම්පූර්ණ sedවැඩසටහන් වනු ඇත .

ෆැක්ටොයිඩ්

sed සිත් ඇදගන්නාසුළු-සම්පූර්ණ භාෂාවකි. මෙන්න සාක්ෂියක්.

දිග 0 ස්නිපෙට්

දිග 0 ස්නිපටයක් තදින් අවශ්‍ය යැයි මම නොසිතමි, නමුත් එය සැබවින්ම යමක් කරන බැවින්, මෙන්න එයයි:

Sed යනු "ධාරා සංස්කාරකය", එනම් එය STDIN වෙතින් ධාරාව (රේඛාව අනුව) කියවීම, සංස්කරණය කිරීම, පසුව STDOUT වෙත ප්‍රතිදානය කිරීම. ශුන්‍ය-දිග sed වැඩසටහන සරලවම STDIN STDOUT වෙත පිටපත් කරයි. මේ අනුව catඋපයෝගීතාව sed මගින් අනුකරණය කළ හැකිය. පහත දැක්වෙන්නේ සමාන ය:

cat a.txt b.txt > c.txt

හා

sed '' a.txt b.txt > c.txt

දිග 1 ස්නිපටය

=

මෙම sed වැඩසටහන මඟින් එක් එක් පේළියේ පේළි අංකය STDOUT වෙත මුද්‍රණය කරයි. මෙය ආසන්න වශයෙන් සමාන වේ:

nl

හෝ

cat -n

sed අනුවාදය රේඛා අංකය තමන්ගේම රේඛාවක් මත තැබුවද.

දිග 2 ස්නිපටය

5q

STDIN සිට STOUT දක්වා පිටපත් කර 5 වන qපේළියට පසුව යූට්ස්. මෙය සමාන වේ:

head -n5

ඔබ මෙහි ටිකක් රටාවක් දැකීමට පටන් ගන්නවා විය හැකිය - sed සම්මත හර-උපයෝගීතා මෙවලම් බොහෝමයක් අනුකරණය කිරීමට භාවිතා කළ හැකිය.

දිග 3 ස්නිපෙට්

iHi

iසෑම පේළියකටම පෙර "හයි \ n". මෙහ්.

දිග 4 ස්නිපෙට්

/a/d

සෙඩ්ගේ බලය විශාල ප්‍රමාණයක් එහි රීජෙක්ස් හැකියාව තුළ පවතී. මෙම වැඩසටහන මඟින් රීජෙක්ස් aවලට ගැලපෙන සියලුම රේඛා dප්‍රවාහයෙන් ඔසවා තැබීමට හේතු වේ. අනෙක් සියලුම රේඛා තවමත් STDOUT වෙත ප්‍රතිදානය වනු ඇත. මෙය සමාන වේ:

grep -v "a"

දිග 5 ස්නිපෙට්

:l;bl

මෙය අසීමිත පුඩුවක්. අපි හැමෝම CPU-hogging අනන්ත ලූප වලට කැමතියි. ලේබලයක් නිර්වචනය කර l, පසුව bඑය වෙතට (පනින්න). දැන්වීම් අනන්තය.

දිග 7 ස්නිපෙට්

s/a/A/g

පෙරනිමියෙන්, sed sවිසින් එක් එක් පේළියේ පළමු සිදුවීමට පමණක් ගැලපෙන විධාන අදාළ වේ . රේඛාවක සෑම සිදුවීමක්ම ගැලපීමට (සහ ආදේශ කිරීමට) ඔබට එය අවශ්‍ය නම් g, sවිධානය අවසානයේ ඇති ධජය මෙය කරයි.

දිග 8 ස්නිපටය

y/01/10/

සුළු වශයෙන් භාවිතා කරන yවිධානය trෂෙල් උපයෝගීතාවයට සමාන වේ (තරමක් නම්‍යශීලී නොවේ). මෙම වැඩසටහන සියළුම 0s සමඟ 1s සහ අනෙක් අතට මාරු වේ.

දිග 9 ස්නිපෙට්

1!G;$p;h

මෙම ස්නිපටය ඇත්ත වශයෙන්ම බයිට් 8 ක් වන නමුත් පෙරනිමි ප්‍රතිදානය මැඩපැවැත්වීම සඳහා -n පරාමිතිය අවශ්‍ය වේ, එබැවින් සම්මත කේත-ගොල්ෆ් නියමයන්ට අනුව මම මෙය 9 ලෙස ගණන් කරමි. මෙම වැඩසටහන ධාරාවේ රේඛා ආපසු හරවයි. ඒ නිසා:

sed -n '1!G;$p;h'

හරියටම සමාන වේ:

tac

දිග 10 ස්නිපෙට්

s/[ <TAB>]+$//

මෙය (වැරදි) දිග 6 ස්නිපටයේ නැවත බැලීමකි. මෙය තීරු වලින් සුදු අවකාශය (අවකාශ සහ TAB) පසුපසින් ගමන් කරයි.


2
SED සඳහා ප්‍රයෝජනවත් එක්-රේඛා ස්ක්‍රිප්ට්ස් ද බලන්න , එය මූලික වශයෙන් මම ඉගෙන ගත් ආකාරයයිsed
ඇඩම් කැට්ස්

ඔබට තවත් ඡන්ද තිබේ. අපට තවත් කිහිපයක් ලබා ගත හැකිද?
luser droog

2
ඔබේ ෆැක්ටෝයිඩ් 404'ed.
වොස්ල්

1
මෙම භාවිතය GNU දිගු කිරීම හොඳයි, ඒත් කරුණාකර මතක තබා බොහෝ විට සහ සම්මත-විශේෂයෙන් දිග 3 (සම්මත වනු ඇත නැත i\<newline>Hi<newline>), දිග 5 (සම්මත වනු ඇත sed -e :l -e blහෝ :l<newline>bl<newline), සහ දිග 10 (මෙම අවශ්ය වන +වෙත හැරී *සියලු වැඩ කිරීමට). දිග 9 ඇබිත්ත බව සටහන -n '1!G;$p;h' වේ බැවින්ද, සම්මත tacවේ නොහැකි . :)
වයිල්ඩ්කාඩ්

1
IldWildcard ඔව් - මම මෙය GNU sed වලට සීමා කළා.
ඩිජිටල් කම්පනය

41

TI-BASIC

[භාෂාව වෙනස් වන්නේ කුමන කැල්කියුලේටරය මතද යන්න මත පදනම්ව වෙනස් වේ, නමුත් වෙනත් ආකාරයකින් සටහන් නොකළහොත් මේවා TI-84 භාවිතා කරයි.]

දිග 31 ස්නිපටය

Menu("","1",A,"2",B
Lbl A
Lbl B

මෙයින් පෙන්නුම් කරන්නේ මෙනු භාවිතයයි. කිසිවක් නොකියන බැවින් ඉහත එක තරමක් නිෂ් less ල ය, නමුත් ඒවා වැඩසටහනක විවිධ කොටස් සැරිසැරීමට භාවිතා කළ හැකිය. පළමු තර්කය වන්නේ මෙනු මාතෘකාව වන අතර ඉන් පසුව විකල්ප යුගල (දර්ශනය වන නූල් 1- හෝ 2 අකුරු ලේබලයක්). මෙන්න වඩාත් බුද්ධිමත් උදාහරණයක්:

Menu("CHOOSE VALUE","AREA",A,"CIRCUMFERENCE",C
Lbl A
Disp πR²
Stop
Lbl C
2πR

Lblඅතු බෙදීම සඳහා ද භාවිතා කළ හැකිය Goto. මෙනු වලට ඒවා භාවිතා කිරීමට කරදරයක් වන යම් සීමාවන් ඇත, කෙසේ වෙතත්: එහි ඇත්තේ මෙනු අයිතම හතක් පමණක් වන අතර සෑම මාතෘකාවක්ම උපරිම වශයෙන් අක්ෂර දාහතරක් විය හැකිය, එබැවින් සියල්ලම එකම තිරයකට ගැලපේ.

දිග 29 ස්නිපටය

Real
√(-16
a+bi
Ans
re^θi
Ans

Real(පෙරනිමියෙන්) කැල්කියුලේටරය තාත්වික සංඛ්‍යා ප්‍රකාරයේදී ස්ථානගත කරයි, එබැවින් සංකීර්ණ සංඛ්‍යා සම්බන්ධ ගණනය කිරීම් NONREAL ANSදෝෂයක් ඇති කරයි. විට තබා a+bi, මාදිලිය අදාල නම් සංකීර්ණ සංඛ්යා, ඒ නිසා දෙවන උදාහරණය ප්රතිලාභ ලෙස කැල්ක්යුලේටරය ප්රදර්ශනය පිළිතුරු 4i. re^θiමාදිලිය සෘජුකෝණාස්රාකාර ඛණ්ඩාංක වෙනුවට ධ්‍රැවීය භාවිතා කරයි, එබැවින් එය ප්‍රතිදානය 4e^(1.570796327i)කරයි.

දිග 23 ස්නිපටය

If A≥9
Then
1→X
7→Y
End

Elseප්‍රකාශයක් තිබිය හැකි වුවද මෙය සරල කොන්දේසියකි . Thenහා Endඅවශ්ය නොවේ එය හුදෙක් එක් ප්රකාශයක් නම් කර ඇත.

දිග 21 ස්නිපටය

(-B+√(B²-4AC))/(2A)→X

සෑම කෙනෙකුගේම ප්රියතම, චතුරස්රාකාර සූත්රය. XA, b, සහ c අක්ෂ 2 + bx + c හි මෙන් ඒවායේ විචල්‍යයන්හි ගබඩා වී ඇතැයි උපකල්පනය කරමින් චතුරස්රාකාර සමීකරණයකට පළමු විසඳුම ගබඩා කරයි .

දිග 20 ස්නිපටය

Shade(|X/2|-3,5-X²,0

මෙය විකල්ප පරාමිතීන් කිහිපයක් සහිත ශ්‍රිත දෙකේ ඡේදනය කරයි: x හි අවම සහ උපරිම අගයන් සහ සෙවන රේඛා අතර දිශාව සහ දුර.

දිග 18 ස්නිපටය

LinReg(ax+b) L1,L2

මෙහිදී අපි ගණනය කරන්නේ රේඛීය ප්‍රතිගාමී සමීකරණය හෝ ලක්ෂ්‍ය සමූහයකට වඩාත්ම ගැලපෙන රේඛීය සමීකරණය, x- අගයන් ලැයිස්තුවක් ලෙස ගබඩා කර ඇති L1අතර y- අගයන් L2. චතුරස්රාකාර, ic නක සහ on ාතීය ඇතුළුව තවත් බොහෝ ප්‍රතිගාමී විකල්ප තිබේ.

දිග 17 ස්නිපටය

dbd(1.2711,1.2115

මෙය දින දෙකක් අතර දින ගණන ගණනය කරයි, මේ අවස්ථාවේ දී 2011 ජනවාරි 27, මෙම වෙබ් අඩවිය ආරම්භ වූ දිනය සහ 2015 ජනවාරි 21, මෙය ලියූ දිනය. (කම්මැලි අයට එය දින 1455 කි.) දිනයන් කේතනය කිරීමේ ක්‍රමය ටිකක් අමුතුයි: DDMM.YY හෝ MM.DDYY, ප්‍රමුඛ ශුන්‍ය විකල්ප නොවේ.

දිග 16 ස්නිපටය

For(A,0,5
Disp A

මෙය භාෂාවේ ක්‍රමලේඛන පැත්තේ කොටස් දෙකක් පෙන්වයි. පළමුවැන්න වෙනත් භාෂාවන්ට forසමාන ඔබේ සාමාන්‍ය ලූපයයි for(var A=0;a<5;a++). ( Endලූපයෙන් පිටතට යාම සඳහා ඔබ ද විධානය භාවිතා කළ යුතුය .) දෙවැන්න ස්වයං පැහැදිලි කිරීමකි: එය පෙන්වන්නේ A, මේ අවස්ථාවේ දී 5 වතාවක් ලූපය නිසා ය.

දිග 15 ස්නිපටය

Y1=|X³-4|
Y2=3X

ප්‍රස්ථාර කැල්කියුලේටරයේ ප්‍රකට ලක්ෂණයකට උදාහරණ දෙකක් මෙන්න : ප්‍රස්ථාර සමීකරණ. ඔබට එකම තලයක විවිධ සමීකරණ 10 ක් ග්‍රහණය කර ගත හැකි අතර, ඡේදනය, උපරිම, x හි අගයන් ආදිය සොයා ගැනීමට බොහෝ ප්‍රයෝජනවත් විධානයන් ඇත. සම්මත කවුළුවක ප්‍රස්ථාරණය කරන විට එම සමීකරණ මේ ආකාරයෙන් පෙනේ:

ප්රස්ථාරය

දිග 14 ස්නිපටය

[[1,2][34,5]]T

Tමැට්රික් සෑදීම සඳහා වරහන් භාවිතා කරන අතර, අනුකෘතිය පාරදෘශ්‍ය කරයි:

[[1 34]
 [2 5]]

දිග 13 ස්නිපටය

dayOfWk(9,1,6

මෙය ක්‍රි.ව. 9 ජනවාරි 9 සතියේ දිනය සොයා ගනී. ප්‍රතිදානය යනු 1 ඉරිදා, 2 සඳුදා සහ එසේ ය. මෙම විශේෂිත දිනය අඟහරුවාදා දිනයකි, එබැවින් ප්‍රතිදානය වේ 3.

දිග 12 ස්නිපටය

Circle(1,3,5

මූලික ඇඳීම් මෙවලම් වලින් පළමුවැන්න, මෙය ප්‍රස්ථාරයේ (1,3) කේන්ද්‍රයක් සහ 5 අරය සහිත රවුමක් ඇද ගනී.

දිග 11 ස්නිපටය

randInt(0,8

මෙය 0 සිට 8 දක්වා ඇතුළත් (ව්‍යාජ) අහඹු පූර්ණ සංඛ්‍යාවක් ජනනය කරයි. පූර්ණ සංඛ්‍යා කීයක් ජනනය කළ යුතුදැයි පවසන විකල්ප තුන්වන තර්කයක් ඇත. සාමාන්‍ය හා ද්විමය බෙදාහැරීම් සඳහා එකක්, අහඹු අනුකෘතියක් සඳහා එකක් සහ පුනරාවර්තනයක් නොමැතිව අහඹු ලෙස ඇණවුම් කරන ලද ලැයිස්තුවක් ඇතුළුව තවත් අහඹු කාර්යයන් කිහිපයක් තිබේ. randIntඅංකයක් ගබඩා කිරීමෙන් බීජ ලබා ගත හැකිය rand: 2→rand.

දිග 10 ස්නිපටය

4>5 or 2≠7

මෙන්න අපට TI-BASIC හි (in) සමානාත්මතාවය සහ තාර්කික ක්‍රියාකරුවන් ඇත. අසමානතා ප්‍රකාශයන් පළමුව ඇගයීමට ලක් කරන 0 or 1අතර orදෙපැත්ත සත්‍ය නම් සත්‍ය බවට පත්වේ, එබැවින් මෙය පෙන්වයි 1.

දිග 9 ස්නිපටය

.656▶F◀▶D

මෙය දශමයේ සිට භාගයට පරිවර්තනය කළ හැකි අතර අනෙක් අතට එය ඉතා ප්‍රයෝජනවත් වේ. එක් මාර්ගයකට පමණක් යන කැපවූ ▶Fracසහ ▶Decකාර්යයන් ද ඇත. 82/125මෙම නඩුවේ මුද්රණ .

දිග 8 ස්නිපටය

lcm(14,6

මෙය 14 සහ 6 හි අවම පොදු ගුණකය මුද්‍රණය කරයි , එය 42 කි.

දිග 7 ස්නිපටය

getDate

ඉතා ස්වයං පැහැදිලි කිරීමක්, මෙම අවස්ථාවේ දී, වත්මන් පද්ධති දිනය ලැයිස්තුවක් ලෙස මුද්‍රණය කරයි {2015 1 19}.

දිග 6 ස්නිපටය

√({4,9

අරා (හෝ ලැයිස්තු) වරහන් වලින් වටවී කොමාවකින් වෙන් කර ඇත. මෙය mapබොහෝ භාෂාවන්ගේ ක්‍රියාකාරිත්වයට සමාන වන අතර, එය ලැයිස්තුවේ එක් එක් මූලද්‍රව්‍යය හරහා පුනරාවර්තනය වන අතර වරහන් වලින් පිටත ක්‍රියාකාරිත්වය එයට අදාළ කරයි, මේ අවස්ථාවේ දී වර්ග මූල, එබැවින් ප්‍රති result ලය වේ {2 3}. වසා දැමීමේ වරහන් අත්‍යවශ්‍ය නොවන බව සලකන්න, එබැවින් ඒවා මෙතැන් සිට ඉවත් වේ.

දිග 5 ස්නිපටය

4iii6

අපිට මෙතන නියම දේවල් කිහිපයක් තියෙනවා. පළමුව, සැබෑ කොටස්, 4 සහ 6 ගුණනය වන අතර, පසුව මන inary කල්පිත කොටස් ගුණ කරනු ලැබේ:, i^3හෝ -i. මෙම ගුණනය ලබා දෙයි -24i. විනෝදජනක පෙනුමක් ඇති පද ගුණ කිරීම සහ TI-BASIC විසින් මන inary කල්පිත සංඛ්‍යා හැසිරවීම මෙයින් පෙන්නුම් කෙරේ.

දිග 4 ස්නිපටය

8°5′

මෙය අංශක 8 ක්, චාප 5 ක් වන අතර එය අංශක ලෙස පරිවර්තනය වේ 8.0333...

දිග 3 ස්නිපටය

8→T

සංඛ්‍යා විචල්‍යයන් ලෙස ගබඩා කළ හැකි ආකාරය මෙයින් පෙන්වයි, එය තරමක් අසාමාන්‍ය වන්නේ එම සංඛ්‍යාව පළමුව යන අතර පසුව ගබඩා ඊතලය, පසුව විචල්‍ය නාමයයි. ෆැක්ටෝයිඩ් හි සඳහන් පරිදි, θ( තීටා ) විචල්‍යයක් ලෙස ද භාවිතා කළ හැකි අතර විචල්‍යයන් විය හැක්කේ එක් ලොකු අකුරක් පමණි.

දිග 2 ස්නිපටය

4M

ගණිතයට සමානව, ඔබට අවශ්‍ය පරිදි පදාර්ථය සමඟ ගුණ කළ හැකිය *. සියලු විචල්‍යයන් පෙරනිමියෙන් 0 ට ආරම්භ කර ඇත, එබැවින් ඔබ එම විචල්‍යයට වෙනත් දෙයක් ගබඩා කර නොමැති නම් මෙය 0 ප්‍රතිදානය කරයි (ස්නිපෙට් 3 බලන්න).

දිග 1 ස්නිපටය

e

මේ සඳහා, නියත වන ඉයුලර් ගේ සංඛ්යාව ලෙස ප්රදර්ශනය වන 2.718281828.

ෆැක්ටොයිඩ්

විචල්‍යයන්ට ගබඩා කළ හැක්කේ නිශ්චිත දත්ත වර්ග පමණි. උදාහරණයක් ලෙස, A- Z(සහ θ) සංඛ්‍යාත්මක අගයන් ගබඩා කරන්න, str0- str9නූල් ගබඩා කරන්න, සහ [A]- [J]ගබඩා මෙට්‍රික්ස් (ද්විමාන අරා).


මාර්ගය වන විට, පහළ අකුර n(නොවේ n) ද විචල්යයක් ලෙස භාවිතා කළ හැකිය.
Ypnypn

සිත්ගන්නා සුළුය. මම කවදාවත් ඒ විචල්‍යය භාවිතා කර නැහැ.
NinjaBearMonkey

3
str0අක්ෂර 1 ක් වීම හෝ 4 වීම ගැන කෙනෙකුට තර්ක කළ හැකිය . TI-BASIC හි ඇති සියලුම උපදෙස් අක්ෂර 1 ක් දිග ය.
ඉස්මයිල් මිගෙල්

S ඉස්මයිල් මිගෙල් මම ඒ ගැන සිතුවෙමි, නමුත් ඒවා බයිට් 1 ක් හෝ 2 ක් වන අතර , සාමාන්‍යයෙන් චරිත ගණන් කිරීමට මම තීරණය කළෙමි.
NinjaBearMonkey

1
මම ඔබේ තීරණයට ගරු කරනවා. මෙම අවස්ථාවේ දී එය බොහෝ උපකාර කරයි. මගේ පැරණි TI-83 හි වැඩසටහන්කරණය මම සැබවින්ම ප්‍රිය කළෙමි. (මම එහි තීන්ත වැඩසටහනක් පවා නිර්මාණය කර ඇත්තෙමි!)
ඉස්මයිල් මිගෙල්

39

පයිතන්

( mbomb007 හි පෝස්ට් එකෙහි දැනටමත් පයිතන් ස්නිපෙට් රාශියක් ඇත, නමුත් මම සිතුවේ සමහර විචක්ෂණ කරුණු සමඟ සම්බන්ධ වීමටයි)

ෆැක්ටොයිඩ්

පයිතන් යනු කියවීමේ හැකියාව අවධාරණය කරන ගතිකව ටයිප් කළ භාෂාවකි.

දිග 1 ස්නිපටය

1

පයිතන් 3 හි, ඉහත Trueඅර්ථයට සමාන වේ 1 == True(සහ 0 == False). පයිතන් 2 හි මෙය සත්‍යයක් ලෙස අවශ්‍ය නොවන බව සලකන්න, එහිදී ඔබට එහි වටිනාකම නැවත අර්ථTrue දැක්විය හැකිය .

දිග 2 ස්නිපටය

<>

<>යල්පැනගිය සංසන්දනාත්මක ක්‍රියාකරුට සමාන වේ !=. එය තවමත් පයිතන් 2 හි ක්‍රියාත්මක වේ (එහි භාවිතය අධෛර්යමත් වුවද), එය පයිතන් 3 වෙතින් සම්පූර්ණයෙන්ම ඉවත් කරන ලදි.

දිග 3 ස්නිපටය

...

පයිතන් හි කිසිදු අංගයක් නොමැති අතර එය කිසිදු බිල්ඩින් භාවිතා නොකරන නමුත් තෙවන පාර්ශවීය පුස්තකාල සඳහා පමණක් පවතී. මෙම Ellipsisවස්තුව ඒවායින් එකක් වන අතර එය සාමාන්‍යයෙන් පෙති කැපීම සඳහා යොදා ගනී. උදාහරණයක් ලෙස, අපට පහත ත්‍රිමාණ අංක අරා තිබේ නම්:

array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])

ඉන්පසු a[..., 0](සමාන a[:,:,0]) සියලු පළමු අංග ලබා දෙයි:

array([[1, 4], [7, 10]])

Python 3 දී ...ප්රායෝගික හාස්යය ඔබ "වෙත-කරන්න 'මාකර් වෙනුවට ලෙස එය භාවිතා කිරීමට ඉඩ සලසා දෙයි යසිකා කාරක රීති, පිටත උපයෝගී කර ගත හැකි passහෝ NotImplemented:

def f(x):
    ... # TODO

දිග 4 ස්නිපටය

(1,)

පයිතන්හි එක් මූලද්‍රව්‍යයක්.

Python මීට උදාහරණ ලැයිස්තු (උදා: ඇත [1, 2, 3, 4]mutable වන), සහ tuples (උදා: (1, 2, 3, 4)වන) im mutable. ලැයිස්තු හැෂ් කළ නොහැකි බැවින්, ටුපල් සඳහා එක් පොදු භාවිතයක් වන්නේ ශබ්ද කෝෂ යතුරු ය.

පොදු ආරම්භක වැරැද්දක් නම් ඉහත කොමාව අතහැර දැමීමයි, එනම් (1)වරහන් වර්‍ග වලින් වට වූ අංක 1 පමණි. එක්-මූලද්‍රව්‍ය ටුපල් යනු වසා දැමීමේ පෙරන්ට පෙර ඔබට කොමාව අවශ්‍ය එකම අවස්ථාවයි - ඔබ එය SyntaxErrorහිස් ටුපල් එකක තැබීමට උත්සාහ කරන්නේ නම් එය මතු කරයි (), අවම වශයෙන් 2 ක් වත් දිගට විකල්ප වේ.

දිග 5 ස්නිපටය

0or x

මෙම ස්නිපටයේ කරුණු කිහිපයක් සිදුවෙමින් පවතී, එබැවින් අපි බලමු!

orවගේ ||බොහෝ භාෂාවල. පයිතන්හි, A or Bකෙටි පරිපථ, සත්‍ය නම් සත්‍යය නම් නැවත පැමිණීම A(ඇගයීමකින් තොරව B) A, එසේ නොමැති නම් එය නැවත පැමිණේ B. උදාහරණයක් ලෙස, 1 or xහැම විටම ප්රතිලාභ 1, ලෙස 1සෑම විටම truthy වන අතර, නම් පවා වැඩ xඅර්ථ දක්වා නැත. අනෙක් අතට, 0 or xඑක්කෝ අර්ථ දක්වා xඇත්නම් ආපසු එයි x, නැතහොත් NameErrorඑසේ නොවේ නම් විසි කරයි .

ෙගොල්ෆ් කරන විට, අපි සාමාන්යයෙන් whitespace ගණනාවක් හා අතර අතහැර හැකි or, වැනි 1 or xබවට පත් වෙමින් 1or x. මෙය කළ හැක්කේ 1orඉලක්කම් වලින් ආරම්භ වන අතර එය නීති විරෝධී පයිතන් හඳුනාගැනීමක් බවට පත් කරමිනි.

කෙසේ වෙතත් එක් ව්‍යතිරේකයක් ඇත - 0orඑය අභිරහස් ලෙස විසි කරයි SyntaxError. මන්ද? පයිතන්හි අෂ්ටක වචනාර්ථය ආරම්භ වන්නේ 0o(උදා 0o20 == 16), සහ එය ළඟා වන විට විග්‍රහ කරන්නා යටපත් වේ r!

සටහන: පයිතන් 2 හි, අෂ්ටක සාක්ෂරතා ප්‍රමුඛ ශුන්‍යයකින් ආරම්භ විය හැකිය, උදා 020.

දිග 6 ස්නිපටය

*x,y=L

මෙම ස්නිපටය මගින් පයිතන් හි විශේෂ පැවරුමක් නිරූපණය කරයි, එහිදී Lලැයිස්තුවක්, ටුපල් හෝ වෙනත් ඕනෑම ආකාරයක නැවත කළ හැකි ය.

පයිතන්හිදී, ඔබට එවැනි පටි සහ ලැයිස්තු "ඉවත් කළ හැකිය":

a,b = [1,2]

මෙය 1 සිට a2 දක්වා පවරයි b. මෙම වාක්‍ය ඛණ්ඩය බහු පැවරුම් සඳහා ද භාවිතා වේ

a,b = b,a+b

Fibonacci ශ්‍රේණිය ගණනය කරන වැඩසටහනක් ලිවීමේදී එය ප්‍රයෝජනවත් වේ.

දෙපස දිග නොගැලපේ නම්, ValueErrorඑය විසි කරනු ලැබේ. කෙසේ වෙතත්, පයිතන් 3 විසින් නව වාක්‍ය ඛණ්ඩයක් හඳුන්වා දෙන ලදී .

*x,y = [1, 2, 3, 4, 5]

මෙම පැවරුම් yපසුගිය අංගයක්, 5, සහ xකිරීමට ලැයිස්තුව ඉතිරි , එනම් [1, 2, 3, 4]. ඔබට මේ වගේ දෙයක් පවා කළ හැකිය:

a,b,*c,d,e = [1, 2, 3, 4, 5, 6, 7]

එය 1 සිට a2 දක්වා b, [3, 4, 5]සිට c, 6 සිට d7 දක්වා පවරයි e.

දිග 7 ස්නිපටය

zip(*x)

zip ලැයිස්තු සමූහයක් ගන්නා ශ්‍රිතයක් වන අතර, ඒවා ඉහළට ඔසවා තබයි:

>>> zip([1, 2, 3], [4, 5, 6])
[(1, 4), (2, 5), (3, 6)]

සටහන: පයිතන් 3 හි zipඒ වෙනුවට වස්තුවක් ආපසු ලබා දෙනු ලැබේ, එබැවින් ඔබට ඉහත වැනි ලැයිස්තුවක් අවශ්‍ය නම් ඔබට ඇමතුම එතීමට අවශ්‍ය වේlist()

ඔබට අදාළ ලැයිස්තු දෙකක් හෝ වැඩි ගණනක් තිබේ නම් එය බෙහෙවින් පහසු කාර්යයක් වන අතර ඔබට ඒවායේ ඇතුළත් කිරීම් සම්බන්ධ කිරීමට අවශ්‍යය.

දැන් ඔබට අවශ්ය කියන්න unzip ලැයිස්තුව - කොහොමද ඔබ එසේ කරන්නේ කෙසේද? අපට zipනැවත භාවිතා කිරීමට උත්සාහ කළ හැකිය , නමුත් අවාසනාවකට මෙය ලබා දෙන්නේ:

>>> zip([(1, 4), (2, 5), (3, 6)])
[((1, 4),), ((2, 5),), ((3, 6),)]

ගැටළුව වන්නේ සෑම දෙයක්ම එක ලැයිස්තුවක zipතිබීමයි , නමුත් තනි ලැයිස්තු වෙනම ක්‍රියාකාරී තර්ක ලෙස ගනී. මෙය නිවැරදි කිරීම සඳහා අපි *ස්ප්ලට් ක්‍රියාකරු හඳුන්වා දෙන්නෙමු , එය ලැයිස්තුවක් / ටුපල් / යනාදිය ගනී. සහ ඒවා ක්‍රියාකාරී තර්ක ලෙස ඉවත් කරයි:

f(*[1,2]) ==> f(1, 2)

ප්‍රති result ලය වන්නේ:

>>> zip(*[(1, 4), (2, 5), (3, 6)])
[(1, 2, 3), (4, 5, 6)]

දිග 8 ස්නිපටය

x='a''b'

පළමු වරට මා මෙය දුටු විට, මා ටිකක් පසුපසට ගෙන යනු ලැබීය - එකිනෙකට යාබදව නූල් දෙකක් තිබීම යන්නෙන් අදහස් කරන්නේ කුමක්ද? පිළිතුර සරලයි:

>>> x
'ab'

පයිතන් හුදෙක් නූල් දෙක සමපාත කරයි! කියවීමේ හැකියාව සඳහා මෙය අතිශයින්ම ප්‍රයෝජනවත් වේ, මන්ද එය ඔබට දිගු නූල් කැඩීමට ඉඩ සලසයි (අවට වරහන් සටහන් කරන්න):

x = ('This is a very long sentence, which would not look very nice '
     'if you tried to fit it all on a single line.')

දිග 9 ස්නිපටය

0!=2 is 2

සැසඳීමේ ක්‍රියාකරුවන් දම්වැල් දැමීමට පයිතන් ඉඩ දෙන බව ඔබ දැනටමත් දන්නවා ඇති, එසේ නම් 5 < x <= 7එය සත්‍ය වන්නේ නම් 5 < xසහ x <= 7. ඔබ එය නොදැන සිටියා නම් ... පුදුම වන්න!

කෙසේ වෙතත්, එතරම් ප්‍රසිද්ධ නැති කාරණය නම්, is/ is not/ in/ not inද සංසන්දනාත්මක ක්‍රියාකරුවන් බැවින් ඔවුන් දම්වැලෙන් බැඳ තැබිය හැකි බවයි. වෙනත් වචන වලින් කිවහොත්, ඉහත කේතය සමාන වේ (0 != 2) and (2 is 2), එනම් True.

සටහන: කාරණා දෙකක් එකම වස්තුවක්ද යන්න පරීක්ෂා කරන 2 is 2බැවින් isකාරණා දෙකක් එකම අගයක්ද යන්න පරීක්ෂා කරන බැවින් අඩක් සමඟ සියුම් කරුණු කිහිපයක් තිබේ . Python මීට උදාහරණ කුඩා පූර්ණ සංඛ්යා ගබඩා කරනු එසේ වන්නේ , නමුත් වේ !1+1 is 2True999+1 is 1000False

දිග 10 ස්නිපටය

x=[];x+=x,

ඔබ විසින්ම ලැයිස්තුවක් එකතු කළ විට කුමක් සිදුවේද? අපි මුද්‍රණය කිරීමට උත්සාහ කළහොත් අපට xලැබෙන්නේ:

[[...]]

වාසනාවකට මෙන්, printපුනරාවර්තන ලැයිස්තු මුද්‍රණය කිරීමට උත්සාහ කිරීම පුපුරා නොයෑමට පයිතන් බුද්ධිමත් ය. අපට පසුව විනෝදජනක දේවල් රාශියක් කළ හැකිය, වැනි:

>>> x[0][0][0][0][0]
[[...]]
>>> x[0] == x
True

මෙම අංගය ශබ්ද කෝෂ සමඟ ද ක්‍රියා කරන අතර චක්‍ර සමඟ දත්ත ව්‍යුහයන් නිර්මාණය කිරීමේ එක් ක්‍රමයකි, උදා. ප්‍රස්ථාරයක්.

දිග 11 ස්නිපටය

help(slice)

මෙම helpකාර්යය Python දී දෝෂහරණ සඳහා ඉතා ප්රයෝජනවත් වේ. REPL හි කිසිදු තර්කයක් නොමැතිව කැඳවූ විට, help()උපකාරක සැසියක් ආරම්භ කරයි, එහිදී ඔබට කාර්යයන් / දත්ත වර්ග / යනාදිය සඳහා ලේඛන සොයා බැලිය හැකිය. නිශ්චිත තර්කයක් සමඟ කැඳවූ විට help, අදාළ අයිතමය පිළිබඳ තොරතුරු ලබා දෙනු ඇත.

උදාහරණයක් ලෙස, help(slice)පහත සඳහන් තොරතුරු ලබා දෙයි (එය තරමක් දිගු බැවින් කපා ඇත):

Help on class slice in module __builtin__:

class slice(object)
 |  slice(stop)
 |  slice(start, stop[, step])
 |  
 |  Create a slice object.  This is used for extended slicing (e.g. a[0:10:2]).
 |  
 |  Methods defined here:
 |  
 |  __cmp__(...)
 |      x.__cmp__(y) <==> cmp(x,y)
 |  
 |  __getattribute__(...)
 |      x.__getattribute__('name') <==> x.name
 |
 | ...

සඳහා පරිදි slice, අපි නිර්මාණය කළ හැක දැකගත හැකි පරිදි slice, සූචිගත සඳහා වස්තූන්. උදාහරණයක් වශයෙන්:

>>> L = list(range(10))
>>> L[slice(2, 5)]         # L[2:5]
[2, 3, 4]
>>> L[slice(2, None)]      # L[2:]
[2, 3, 4, 5, 6, 7, 8, 9]

නිදොස් කිරීම සඳහා වන තවත් ප්‍රයෝජනවත් කාර්යයක් නම් dir(), එය තර්කයක් නොමැතිව කැඳවූ විට වත්මන් විෂය පථයේ ඇති සියලුම නම් ආපසු ලබා දෙන අතර තර්කයක් සමඟ කැඳවූ විට දී ඇති වස්තුවක සියලු ගුණාංග නැවත ලබා දෙයි.

දිග 12 ස්නිපටය

round(5.0/2)

මෙය තක්සේරු කරන්නේ කුමක් ද? පිළිතුර ඔබගේ පයිතන් අනුවාදය මත රඳා පවතී!

පයිතන් 2 හි, පූර්ණ සංඛ්‍යා දෙකක් අතර බෙදීමෙන් පූර්ණ සංඛ්‍යා බෙදී යයි (එනම් 5/2 == 2) පයිතන් 3 හි අපට පාවෙන බෙදීම (එනම් 5/2 == 2.5) ලැබේ. කෙසේ වෙතත්, මෙය පාවෙන හා පූර්ණ සංඛ්‍යාවක් අතර බෙදීමක් වන අතර එය සෑම විටම පාවෙන ප්‍රති result ලයක් විය යුතුය. එසේනම් අපට වෙනස් ප්‍රති results ල ලැබෙන්නේ ඇයි?

අපි roundපයිතන් අනුවාද දෙකම සඳහා වන ලියකියවිලි දෙස බැලුවහොත් , අපට පිළිතුර සොයාගත හැකිය:

  • දී Python 2 , round0 සිට ඉවතට යයි වරදවා වටහා විසින් tiebreaks.
  • දී Python 3 , roundකරා යයි වරදවා වටහා විසින් tiebreaks සමීපතම පවා පූර්ණ සංඛ්යාමය .

වෙනත් වචන වලින් කිවහොත්, දී 5.0/2 = 2.5ගැනීමට වට 3Python 2, නමුත් වට 2සමීපතම පවා පූර්ණ සංඛ්යාමය දෙසට Python 3. යයි වරදවා වටහා දී අමුතු ශබ්ද විය, නමුත් එය ඇත්තටම අමතන්නේ බැංකු කරුවෙකු ගේ ගාල්කර , සහ සංග්රහ ධනාත්මක සහ ඍණාත්මක වටිනාකම් උත්සාහක දිනුම් සමානව නැඹුරු අඩු කිරීමට.

දිග 13 ස්නිපටය

class C:__x=1

වස්තු-නැඹුරු වීම නිසා පයිතන්ට පන්ති තිබේ. ඉහත දැක්වෙන්නේ Cතනි ගුණාංග __x1 ට සකසා ඇති පන්තියකි .

අපට තිත් අංකනය භාවිතයෙන් පන්ති ගුණාංග වෙත පිවිසිය හැකිය. උදාහරණයක් ලෙස, අපට පන්තිය තිබේ නම්

class MyClass(): my_attr = 42

එවිට මුද්‍රණය MyClass.my_attrකිරීමෙන් අපේක්ෂිත පරිදි 42 ක් ලැබෙනු ඇත.

කෙසේ වෙතත්, අප එයම C.__xකර ඉහත අර්ථ දක්වා ඇති ආකාරයට ප්‍රවේශ වීමට උත්සාහ කළහොත් අපට ලැබෙන්නේ:

AttributeError: type object 'C' has no attribute '__x'

වෙන්නේ කුමක් ද? Cපැහැදිලිවම __xලක්ෂණයක් ඇත!

හේතුව __, පයිතන් සතුව නැති “පුද්ගලික” විචල්‍යයන් අනුකරණය කිරීමෙන් ආරම්භ වන ගුණාංගයි . පයිතන් ඕනෑම ගුණාංගයක නම ආරම්භ කර __පන්තියේ නම එකතු කරමින් නම නැවත භාවිතා කිරීමේ ගැටුම් මඟහරවා ගනී. ඉහත උදාහරණයේ දී, අප එයට ප්‍රවේශ වීමට සැබවින්ම අධිෂ් were ාන කරගෙන සිටියේ නම් 1, ඒ වෙනුවට අපට කළ යුතුව ඇත

>>> C._C__x
1

දිග 14 ස්නිපටය

NotImplemented

පයිතන්ට පන්ති තිබෙනවා පමණක් නොව, ක්‍රියාකරු අධික ලෙස පැටවීමද ඇත. උදාහරණයක් ලෙස, ඔබට පන්තියක් තිබිය හැකිය

class Tiny():
    def __lt__(self, other):
        return True

කොහෙද __lt__ක්‍රියාකරුට වඩා අඩු. දැන් අපි උදාහරණයක් කළහොත් අපට Tinyමෙය කළ හැකිය

>>> t = Tiny()
>>> t < 1
True
>>> t < "abc"
True

අපි __lt__සෑම විටම නැවත පැමිණීමට අර්ථ දක්වා ඇති බැවින් True. අපට ද කළ හැකි බව සලකන්න

>>> 42 > t
True

නමුත් පහත සඳහන් බිඳීම්:

>>> t > 42
Traceback (most recent call last):
  File "<pyshell#18>", line 1, in <module>
    t > 42
TypeError: unorderable types: Tiny() > int()

ඉන්න, එය ක්‍රියාත්මක වන්නේ කෙසේද? අපි වඩා වැඩි හැසිරීමක් නිශ්චිතව දක්වා නැත Tiny, එබැවින් අවසාන අවස්ථාව කැඩී යාම පුදුමයක් නොවේ. නමුත් intඑය අපගේ Tinyවස්තුවට වඩා විශාල බව (42) දැන ගන්නේ කෙසේද?

පයිතන්ට බිල්ඩින් නියතයක් NotImplementedඇති අතර එය සංසන්දනාත්මක විශේෂ ක්‍රමයක් මගින් ආපසු ලබා දිය හැකිය. අපි එය අත්හදා බලමු:

class Unknown():
    def __gt__(self, other):
        # __gt__ for greater-than
        print("Called me first!")
        return NotImplemented

දැන් අපි අපගේ නව පන්තියේ උදාහරණයක් ඉදිරිපත් කරන්නේ නම්:

>>> u = Unknown()

අපට මෙය කළ හැකිය:

>>> t < u
True
>>> u > t
Called me first!
True

අපට පෙනෙන පරිදි, සිදුවී u > tඇත්තේ පයිතන් Unknownමුලින් වඩා විශාල ක්‍රමයට ඇමතීමට උත්සාහ කිරීම, එය ක්‍රියාත්මක කර නොමැති බව සොයා ගැනීම සහ Tinyඒ වෙනුවට අනෙක් පන්තියට ( ) වඩා අඩු ක්‍රමයට උත්සාහ කිරීමයි !

දිග 15 ස්නිපටය

x=[],;x[0]+=[1]

මෙය ටිකක් විනෝදජනකයි. මුලින්ම අපි නියම xවිය [],එනම්, tuple ඇතුළත හිස් ලැයිස්තුව වන ([],). x[0]+=[1]දෙවන ලැයිස්තුවෙන් හිස් ලැයිස්තුව දීර් extend කිරීමට උත්සාහ කරන දේ අපි කරන්නෙමු [1].

දැන්, ලැයිස්තු mutable හා tuples බව මතක තබා im mutable - ඔබ මා තුලද වස්තුව තුල mutable වස්තුව වෙනස් කිරීමට උත්සාහ වන විට සිදු වන දෙය?

>>> x=[],;x[0]+=[1]
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    x=[],;x[0]+=[1]
TypeError: 'tuple' object does not support item assignment

ඔහ්, එය දෝෂයක් ලබා දෙයි, මම හිතන්නේ එය අපේක්ෂා කළ යුතුය. නමුත් අපි මුද්‍රණය කිරීමට උත්සාහ කළහොත් කුමක් කළ යුතුද x?

>>> x
([1],)

හහ්? ලැයිස්තුව වෙනස් විය!

මෙහි සිදුවන්නේ කුමක්ද යන්න පිළිබඳව ඔබ කුතුහලයෙන් සිටී නම්, මෙම බ්ලොග් සටහන බැලීමට වග බලා ගන්න .

දිග 16 ස්නිපටය

@lru_cache(None)

හැඹිලිය එක් කරන්න! මෙය පයිතන් 3 හි ඇති සැරසිලි කරුවෙකුගේ සරල උදාහරණයකි .

අපට පහත දැක්වෙන බොළඳ ෆිබොනාච්චි ක්‍රියාත්මක කිරීමක් ඇතැයි සිතමු:

def f(n):
    if n < 2: return 1
    return f(n-1) + f(n-2)

ක්‍රමලේඛන පා courses මාලා පිළිබඳ බොහෝ හැඳින්වීමක් ඔබට පවසන පරිදි, මෙය ෆිබොනාච්චි ක්‍රියාත්මක කිරීමේ ඉතා නරක ක්‍රමයක් වන අතර එය on ාතීය ධාවන කාලයට මඟ පාදයි. f(10)? බෙදුණු තත්පරයකින් ධාවනය වේ. f(32)? ටික වේලාවක් ගත කරන්න, නමුත් එය එතැනට පැමිණේ. f(100)? නෑ.

නමුත් අපි ප්‍රති results ල හැඹිලිගත කරන්නේ නම්, දේවල් වේගවත් විය යුතුය. හැඹිලිය සඳහා අපට සැමවිටම ශබ්ද කෝෂයක් භාවිතා කළ හැකිය, නමුත් ඒ වෙනුවට වෙනත් දෙයක් උත්සාහ කරමු:

from functools import lru_cache

@lru_cache(None)
def f(n):
    if n < 2: return 1
    return f(n-1) + f(n-2)

අපට පෙනෙන පරිදි, මම කර ඇත්තේ මොඩියුලයෙන් ආනයනය lru_cacheකර මගේ ශ්‍රිතයට පෙර functoolsඑකතු @lru_cache(None)කිරීමයි. @මතක තබා ගැනීම සඳහා මෙම අවස්ථාවේ දී ශ්‍රිතයක් වටා එතෙන සැරසිලි කරුවෙකු දක්වයි. lru_cacheපළමු තර්කය නම් maxsize, හැඹිලියේ උපරිම ප්‍රමාණය - මෙහි අපි එය සකසා ඇත්තේ Noneඋපරිම ප්‍රමාණයක් නොමැති බව දැක්වීමට ය.

දැන් අපි එය භාවිතා කිරීමට උත්සාහ කරන්නේ නම්:

>>> f(100)
573147844013817084101

එය තත්පරයක්වත් ගත්තේ නැත!

සටහන: f(1000)පුනරාවර්තන ගැඹුරේ දෝෂයකට තුඩු දෙයි, නමුත් එය තවත් කාලයකට කතාවකි


isක්‍රියාකරු සඳහා පයිතන් "අල්ලා" ගන්නා කුඩා සංඛ්‍යා ගණන කුමක්ද?
mbomb007

සිට mbomb007 @ මෙම ප්රශ්නය , එය බව පෙනේ -5 256. කිරීමට ඔබ උත්සාහ කළ හැකි -5-1 is -6හා 255+2 is 257පරීක්ෂණයට.
Sp3000

38

ජෝට්

ෆැක්ටොයිඩ්: මට ජෝට් උඩුකුරු 2 කින් අර්ථ දැක්විය හැකි අතර එය ටියුරින් 8 කින් සම්පූර්ණ බව ඔප්පු කළ හැකිය (දිග 4, 6, හෝ 7 භාවිතා නොකිරීම).

දිග 1

1

මෙය ජෝට් හි කාර්යයන් දෙකකට උදාහරණයකි. පළමුවැන්න අනන්‍යතා ශ්‍රිතය තක්සේරු කරන හිස් නූලයි. දෙවැන්න නම් 1, එය ජොට්ගේ කණ්ඩායම් ක්‍රියාකරු ය. ( ලැම්බඩා කැල්කියුලස් අංකනය) 1වෙත තක්සේරු කරයි , (මෙහි හිස් නූලට පෙර) වැඩසටහන කොතැනද ? ඉතින්, මෙම වැඩසටහන සරල කරන ශ්‍රිතයයි .λxy.[F](xy)[F]1λxy.(λz.z)(xy)λxy.xy

දිග 2

10

දැන් අපි Jot හි අනෙක් සංකේතය හඳුන්වා දෙන්නෙමු : 0. නැවත නම් [F]මෙතෙක් වැඩසටහන වටිනාකම නියෝජනය කරන අතර, 0ගබඩාවේ අගය [F]SK, කොහෙද Sහා Kසිට ඇත combinatory තර්ක . මම දැන් මුළු භාෂාවම අර්ථ දක්වා ඇත්තෙමි.

දිග 5

11100

සංයුක්ත තර්කනයේ සිට ජෝට් දක්වා සිතියමක් නිර්වචනය කිරීමෙන් ජොට් ටියුරින් සම්පූර්ණ බව මම දැන් ඔප්පු කරමි . මෙම Jot වැඩසටහන K සංයෝජක වේ.

දිග 8

11111000

මෙය එස් සංයෝජකයයි.

දිග 3

1AB

මෙන්න, Aසහ Bජොට්ගේ කොටසක් නොව, අත්තනෝමතික ප්‍රකාශනයක් සඳහා ස්ථාන දරන්නන්. මෙම රීති තුන සමඟ ABසංයුක්ත තාර්කික සිතියම්වල ප්‍රකාශනය 1ABජෝට් වෙත Aහා Bපුනරාවර්තනය වේ. QED

දිග එන්

1
10
11
100
101
110
[...]

ද්විමය වලින් ප්‍රකාශිත සෑම ස්වාභාවික අංකයක්ම වලංගු Jot වැඩසටහනකි. එහි ප්‍රති sequently ලයක් වශයෙන්, මට අත්තනෝමතික දිගින් වැඩි කොටස් ප්‍රමාණයක් ඇල්ගොරිතමයෙන් ජනනය කළ හැකිය. ප්‍රමාණවත් තරම් උඩු යටිකුරු කර ඇති නිසා, මට නවතා දැමීමේ ගැටලුව විසඳිය හැකිය .


2
උඩුකුරු දෙකක් ලබා දී ඇත. දැන් භාෂාව අර්ථ දක්වන්න.
ජෝන් ඩ්වොරක්

An ජැන්ඩ්වෝරාක් ඒ මත වැඩ කරමින් ... මම මේ ගැන පර්යේෂණ කර මෙතරම් කාලයක් ගත වී ඇති අතර ඒ සියල්ල මට අමතක විය :)
ෆිල් ෆ්‍රොස්ට්

1
මෙය තව දුරටත් ඉහළ නැංවිය යුත්තේ මන්දැයි මම නොදනිමි. ඔබ හුදෙක් අහඹු ලෙස ද්විමය සංඛ්‍යා වැඩි කිරීමට යන්නේ දිග: |
ප්‍රශස්තකරණය

1
ඉහළ අංක 4 සඳහා ඔබ එසේ කීවේය. නමුත් මෙහිදී අපි බලන්නේ “ඔබ විසින් ජනනය කරන ලද අහඹු අංකයක්”
Optimizer

1
නැවැත්වීමේ ගැටලුව විසඳන්නේ කෙසේද? මම හිතන්නේ එයට අසීමිත (අනන්ත ගණනක්) වැඩසටහනක් භාවිතා කිරීම හා සම්බන්ධයක් තිබේද?
පිලිප් හග්ලුන්ඩ්

37

බාෂ්

ෆැක්ටොයිඩ්:

අතිශය බරපතල ෂෙල්ෂොක් දෝෂය 1989 සිට බාෂ් හි පැවති අතර එය අඩ සියවසක පමණ කාලයක් තිස්සේ අනාවරණය නොවීය. බාෂ් ලිවීමේ ප්‍රීතියෙන් බොහොමයක් එහි බොහෝ මුග්ධකම් හා නොගැලපීම් සමඟ ග්‍රහණය වෙමින් පවතී.

දිග 1 ස්නිපටය:

[

testබිල්ඩින් සඳහා අන්වර්ථයක් , ආකෘතියේ කේතයට ඉඩ දීම if [ a == b ]; then- යථාර්ථයේ [දී හුදකලා විධානයක් මිස සින්ටැක්ටිකල් මූලද්‍රව්‍යයක් නොවන අතර ]එය තනිකරම අලංකාර වේ ([අවශ්‍ය වුවද [, එහි අවශ්‍යතාවය අත්තනෝමතික වන අතර ඔබට එය භාවිතයෙන් ඉවත් කළ හැකිය alias [=test).

දිග 2 ස්නිපටය:

||

orබොහෝ භාෂාවල තාර්කික මෙන් , නමුත් ක්‍රියාවලි සඳහා. ||පෙර විධානය ශුන්‍ය නොවන ලෙස නැවත ලබා දෙන්නේ නම් පමණක් විධානය ක්‍රියාත්මක කරයි .

දිග 3 ස්නිපටය:

x=y

පැවරුම. ලස්සන හා පුරෝකථනය කළ හැකි ... නමුත් වෙනත් බොහෝ භාෂාවන් මෙන් නොව, අමතර අවකාශයන්ට අවසර නැත. එය එක්තරා ආකාරයක විහිලුවක් වන අතර, ඔබට වෙනත් සෑම තැනකම බාෂ් වැනි දේවල් අතර අමතර ඉඩ ප්‍රමාණයක් තැබිය හැකිය =.

දිග 4 ස්නිපටය:

$IFS

අභ්‍යන්තර ක්ෂේත්‍ර බෙදුම්කරු - මෙම විචල්‍යය බලපාන්නේ බොහෝ ගොඩනඟන ලද ක්‍රියාවන් සඳහා බාෂ් දත්ත බෙදන්නේ කෙසේද යන්නට ය. නිවැරදිව භාවිතා කිරීම ඉතා බලවත් විය හැකිය; නමුත් බොහෝ විට එය සියුම් හා අනපේක්ෂිත දෝෂ වලට හේතුවයි.

දිග 5 ස්නිපටය:

${x^}

X හි නූල් ආදේශ කරන්න, නමුත් පළමු අකුර කැපිටල් කර ඇත! එබඳු නිතර භාවිතා වන අංගයක් වන්නේ එයටම ආවේණික වූ භාෂා වාක්‍ය ඛණ්ඩයකි.

දිග 6 ස්නිපටය:

x=($y)

Y නූලකින් හෝ y මූලද්‍රව්‍ය ලැයිස්තුවකින් x, අරාව පුරවන්න, IFS දැනට සකසා ඇති ඕනෑම දෙයකට බෙදීම - පෙරනිමියෙන්, සුදු අවකාශය. උසස් බාෂ් වැඩසටහන්කරණය සඳහා ඉතා ප්‍රයෝජනවත් අංගයකි.

දිග 7 ස්නිපටය:

${x[y]}

අරා! නමුත් රැඳී සිටින්න, ඒ කුමක්ද ... y යනු නූලක් මිස සංඛ්‍යාත්මක දර්ශකයක් නොවේද? ඔව්, ඇත්ත වශයෙන්ම, බාෂ් සහායක අරා සඳහා සහය දක්වයි! බොහෝ අය මෙය නොදනී. ඔබ මුලින්ම අවශ්‍යයි declare -A x.

දිග 8 ස්නිපටය:

${x##*,}

X ආදේශ කරන්න, අන්තිම ,අක්‍ෂරය දක්වා සියල්ල (හෝ ඔබ සඳහන් කරන ඕනෑම දෙයක්). CSV හි අවසාන ක්ෂේත්‍රය ලබා ගැනීමට ප්‍රයෝජනවත් - මෙය ඔබට එතරම් පහසුවෙන් කළ නොහැකි දෙයක් වන cutඅතර එය වමේ සිට ක්ෂේත්‍ර පමණක් ගණනය කරයි. % සහ %% එකම දකුණෙන් කැපීමට ඉඩ දෙයි; එක්සත් ජනපද යතුරුපුවරුවේ ඔවුන්ගේ ස්ථානය සඳහා% සහ # තෝරාගෙන ඇති අතර එමඟින් වමේ තේරුම සහ දකුණ යනු කුමක්ද යන්න පැහැදිලි වනු ඇත, නමුත් එක්සත් ජනපද යතුරුපුවරුව භාවිතා නොකරන සෑම කෙනෙකුටම එය එතරම් වටිනාකමක් නොදක්වයි :)

දිග 9 ස්නිපටය:

[ a = b ]

වෙනත් බොහෝ භාෂාවල, සංසන්දනාත්මක මෙහෙයුමක එක සමාන වීම පැවරුමක ස්වරූපයෙන් අනපේක්ෂිත හැසිරීම් ඇති කරයි. නමුත් බාෂ්හි නොවේ. ඔබ කුමක් කළත් කිසිදු ඉඩක් අතහරින්න එපා!

දිග 10 ස්නිපටය:

if [ a=b ]

අනිවාර්ය අවකාශයන් ඔබට අමතක වුවහොත් සිදුවන්නේ මෙයයි. දෝෂයක් විසි නොකරනු ඇත. සෑම විටම සැබෑ ආපසු - පවා නම් aහා bශූන්යය බව විචල්යයන්, හෝ ඕනෑම දෙයක් ඔවුන් කරන්නේ කට්ටලයට, කරුණක් නොවේ - එය සෑම විටම සැබෑ නැවත කරන්නම්. if [ "$password"="$correctpass" ]මෙම "විශේෂාංගයේ" විනෝද විභවය දැකීමට කැමති කේතය ගැන සිතන්න .

දිග 11 ස්නිපටය:

x=${y//a/b}

රීජෙක්ස් විලාසිතාවේ උපස්ථර ආදේශ කිරීම! X හි අගය y ලෙස සකසන්න, නමුත් සෑම අවස්ථාවකම b සමඟ ආදේශ කරන්න.

දිග 12 ස්නිපටය:

[[:upper:]]*

රටාව ගැලපෙන - ඔබ ෂෙල් දී * ආදේශක භාවිතා කිරීමට පමණක් සීමා නොවේ, ඔබට ඕනෑම POSIX සම්මත තරගය වැනි භාවිතා කළ හැකි alnum, alpha, digitආදිය

දිග 13 ස්නිපටය:

function x(){

සී සින්ටැක්ස් ටිකක් අද්භූත ලෙස ඇතුල් වී ඇත! රැලි සහිත වරහන් සඳහා සම්පූර්ණයෙන්ම වෙනස් භාවිතයන්ගෙන් එකක් වන අතර, බාෂ් වෙනත් භාෂාවන් මෙන් පෙනෙන්නට සැලැස්වීම සඳහා විකල්ප අලංකරණ අංග සඳහා තවත් උදාහරණයක් - මෙහි ()හෝ functionඅතහැර දැමිය හැකිය (නමුත් දෙකම නොවේ). ද නොගැලපෙන හිස් අවකාශයක් වැඩි විනෝදයක් - අභ්යවකාශ පසු {අනිවාර්ය වේ, නමුත් නොවේ භාරගන්නා අවසන් පෙර }දී මෙන්,function x { y;}

දිග 14 ස්නිපටය:

echo {Z..A..3}

මුළුමනින්ම සම්බන්ධ නොවූ තවත් වර්‍ග වරහන් භාවිතා කිරීම. නිශ්චිත පියවරක් සමඟ පරාසයක් පුළුල් කරයි. මෙම අවස්ථාවෙහිදී, Z සිට A දක්වා සෑම 3 වන අකුරක්ම නිපදවනු ඇත. Seq භාවිතා නොකර අනුක්‍රම උත්පාදනය සඳහා ප්‍රයෝජනවත් වේ, නමුත් විචල්‍යයන් සමඟ භාවිතා කළ නොහැක, එබැවින් සීමිත ක්‍රියාකාරීත්වයක් ඇත.

දිග 15 ස්නිපටය:

echo {a,b,c,d}x

අනුක්‍රමික පරම්පරාවේ කැරලි වරහන් සඳහා සමාන හා සමාන නොවන තවත් භාවිතයක්; මුද්‍රණය ax bx cx dxකරන අතර, එක් විධානයකින් අනුක්‍රමයකින් හෝ ලැයිස්තුවකින් නූල් ලැයිස්තුවක් ජනනය කිරීමට ප්‍රයෝජනවත් වේ. කෙසේ වෙතත්, වරහන් තුළ විචල්‍යයන් සමඟ භාවිතා කළ නොහැකි බැවින් නැවතත් ප්‍රයෝජනවත් බව සීමා කර ඇත.


ඇත්ත වශයෙන්ම, ]තනිකරම අලංකාර නොවේ. [එහි අවසාන තර්කය එසේ නොවේ නම් ක්‍රියා කිරීම ප්‍රතික්ෂේප කරනු ඇත ].
FUZxxl

ඔව්, නමුත් එය ආලේපන හැර වෙනත් අරමුණක් ඉටු නොකරයි; ඔබ ආදේශ නම් [එහි අනෙක් ආකෘති පත්රය සමග test, පසුව ]ඇමතුම වෙන කිසිම දෙයක් වෙනස් නොකර හරින ලද කළ හැක - මම හුදෙක් පමණක් දෘශ්ය සීනි, එය සැබෑ bash කාරක රීති නෑ ඒ කෙල්ලට කරමින් ඉන්නේ.
කැරලි

ඔබ එය bash කාරක රීති නොවේ බව, නමුත් අගින් ඇද ඉන්නේ අයිතිය ]වේ [කාරක රීති සහ ඔබ ඔබ, semicolon සමඟ සී ප්රකාශයක් සේවයෙන් ඉවත් කිරීමට ඇති ආකාරය වගේ ලබා දීමට තිබෙනවා.
FUZxxl

එය අනිවාර්ය බව සත්‍යයකි, නමුත් කිසිසේත් සී අර්ධ සළකුණ මෙන් නොවේ. ඒ සඳහා වන අවශ්‍යතාවය මුළුමනින්ම අත්තනෝමතික ය. ඔබ සරලව alias [=testහා පසුව ලිවීම if [ 1 = 1; thenවැනි දේ පෙනේ . නමුත් ඔබේ අදහස සැලකිල්ලට ගැනීම සඳහා මම මගේ වචන පැහැදිලි කරමි :)
කැරලි

1
function x(){වාක්‍ය ඛණ්ඩය සම්බන්ධයෙන් : ඔබ පවසන පරිදි, ඔබට පරෙවියන් අතහැර දැමිය හැකිය, නමුත් ඔබට එම functionකොටස අතහැර දැමිය හැකිය . ඇත්ත වශයෙන්ම, POSIX shell මඟින් කාර්යයන් අර්ථ දක්වන්නේ එලෙසිනි, එබැවින් එය වඩා අතේ ගෙන යා හැකි ය. ඔබට සම්පූර්ණ ශ්‍රිතයක් අක්ෂර 13 කින් අර්ථ දැක්විය හැකිය. උදාහරණයක් ලෙස:x(){ startx;}
kojiro

37

ඒපීඑල්

ෆැක්ටොයිඩ්

කෙන් අයිවර්සන් විසින් සකස් කරන ලද සූත්‍ර අංකනය සඳහා පරිවර්තකයෙකු ලෙස APL ( A P rogramming L anguage) ආරම්භ විය . භාෂාව නිර්මාණය කරන විට, මිනිසුන් පරිගණක සමඟ සන්නිවේදනය කිරීම සඳහා ටෙලිටිප්‍රයිටර් භාවිතා කළහ. මේවායේ අක්ෂර කට්ටලය සීමිත වූ නමුත් ඒවායේ ඉදිකිරීම් නිසා කෙනෙකුට සංකීර්ණ අක්ෂර රචනා කිරීම සඳහා එකම අක්ෂර කිහිපයකට එකවර තැබිය හැකිය. මෙම ලක්ෂණය APL විසින් දැඩි ලෙස භාවිතා කරන අතර කියවීමට පමණක් ඇති භාෂාවක් ලෙස එහි කුප්‍රකට කීර්තියට දායක වේ.

Http://www.tryapl.org හි ඔබට බොහෝ උදාහරණ අත්හදා බැලිය හැකිය .

දිග 1

ලාම්පුව ලෙස හඳුන්වන චරිතය එහි හැඩය සහ එහි සිට ඔබට ලැබෙන en ානාලෝකය සඳහා විවරණයක් හඳුන්වා දෙයි. Ically තිහාසිකව එය නිර්මාණය කර ඇත්තේ (ජොට්) සහ (ඉහළ සපත්තු) ඉක්මවා යාමෙනි.

දිග 2

⍳3

මොනාඩික් (එක් තර්කයක්) ශ්‍රිතය (අයෝටා) පළමු ස්වාභාවික සංඛ්‍යා කිහිපයේ දෛශිකයක් ජනනය කරයි. උදාහරණයක් වශයෙන්, ඉහත සඳහන් ⍳3යටත් වනු ඇත 1 2 3, පළමු ස්වාභාවික අංක තුනකින් දෛශික. කණපිට හැරෙමින් සමහර භාවිතයන් සඳහා, එය යටත් වනු ඇත 0 1 2, ඒ වෙනුවට, වටිනාකම මත මෙම රඳා පවතී ⎕IO, මෙම i OTA o rigin.

දිග 3

5\3

මොනාඩික් වලට ප්‍රතිවිරුද්ධව , ඩයැඩික් \(පුළුල්) ශ්‍රිතය වම්පස ඇති තර්කය මෙන් දකුණු පස ඇති තර්කය පිටපත් කරයි; මේ අනුව, 5\3අස්වැන්න 3 3 3 3 3. 1 2 3\4 5 6එවකට එය කරන්නේ කුමක් දැයි බැලීමට ඔබට දෛශික තර්ක (වැනි ) සමඟ සෙල්ලම් කිරීමට අවශ්‍ය විය හැකිය .

දිග 4

A←⍳3

මෙය Aවටිනාකමට පවරයි ⍳3. (වම් ඊතලය) යනු පැවරුම් ක්‍රියාකරු ය. පැවරුමක ප්‍රකාශයක වම්පසම දේ විය යුතු නැත; පැවරුම් ශ්‍රිත ඇමතුම් මෙන් විග්‍රහ කර ඇති අතර වැඩිදුර භාවිතය සඳහා පවරා ඇති අගය ලබා දෙයි.

දිග 5

∘.×⍨A

තුනෙන් තුනකින් ගුණ කිරීමේ වගුවක්, එනම්,

1 2 3
2 4 6
3 6 9

මෙය ටිකක් සංකීර්ණයි, එබැවින් මට පැහැදිලි කිරීමට ඉඩ දෙන්න. ⍺∘.f⍵(කියවීමට: ඇල්ෆා වූ සැණින්, තිතක් ඊ ඔමෙගා) යනු, පිටත නිෂ්පාදන පිළිබඳ හා පුරා f. පිටත නිෂ්පාදන අයදුම් ප්රතිඵලය මේසයක් fසිට අංග එක් එක් හැකි යුවළට සහ . මෙම උදාහරණයේ දී, fවන ×ගුණ කිරීමේ වගුවක් උපයාගන්නා, (බොහෝ සෙයින් වැඩි). ක්රියාකරු (diæresis tilde) හන්දිය , බව, සිය තර්ක ⍺f⍨⍵සමාන වේ ⍺f⍵හා f⍨⍵වාම යන අගයද තොරව සමාන වේ ⍵f⍵. ගමනාගමන ක්‍රියාකරු නොමැතිව මෙම ස්නිපටය වනු ඇත a∘.×a. බාහිර නිෂ්පාදන ක්‍රියාකරු ඉතා බහුකාර්ය ය; ඔබ ආදේශ නම් සිදු වන්නේ කුමක්ද පරීක්ෂා =කිරීම සඳහා ×!

දිග 6

{×/⍳⍵}

සාධකීය ශ්‍රිතයක්. කැරලි වරහන් යුගලයක් dfn (ගතික ශ්‍රිතයක්), එනම් නිර්නාමික ශ්‍රිතයක් (cf. ලැම්බඩා ප්‍රකාශන) ආවරණය කරයි. එය dfn කිරීමට තර්ක විචල්යයන් කිරීමට බැඳී හා හෝ හුදෙක් ක්රියාව (dyadic, තර්කය දෙකක් විරුද්ධ ලෙස, තනි තර්කය) එම dfn වූ monadic ලෙස හැඳින්වේ නම්. අප විසින් අදාළ සිට පූර්ණ සංඛ්යා උපයාගන්නා, හරි තර්කයට 1කිරීමට . මෙම /(ඇල ඉර) ක්රියාකරු බව, අඩු f/⍵රැසක් fඇති භාණ්ඩ අතර . උදාහරණයක් ලෙස, +/⍳5සාධාරණ ය 1+2+3+4+5. මෙම අවස්ථාවෙහිදී, අපි සාධකවල සාධකය වන ×අයිතමවල නිෂ්පාදිතය ලබා දෙමින් අඩු කරමු .⍳⍵

දිග 7

2×3*4+5

අස්වැන්න 39366. ⍺*⍵(ඇල්ෆා ස්ටාර් ඔමේගා) හි බලයට ඔසවා ඇත . ඒපීඑල් හි ඉතා සරල පූර්වාදර්ශ රීතියක් ඇත: සෑම දෙයක්ම දකුණේ සිට වමට ඇගයීමට ලක් කෙරේ, සියලු කාර්යයන් දකුණට අනුබද්ධ වේ. ක්‍රියාකරුවන් කාර්යයන්ට වඩා ශක්තිමත් වන අතර වමේ සිට දකුණට ඇගයීමට ලක් කෙරේ. මේ අනුව, පැහැදිලි වරහන් සහිත ඉහත ප්‍රකාශනය 2×(3*(4+5))සුපුරුදු පරිදි ලියා (2×(3*4))+5ඇත.

දිග 8

¯1+3 3⍴A

මෙම ස්නිපටය අස්වැන්න

0 1 2
3 4 5
6 7 8

සහ වැදගත් සංකල්ප දෙකක් නිරූපණය කරයි: පළමු සංකල්පය (rho) ශ්‍රිතය වන අතර, එහි දකුණු තර්කය එහි වම් තර්කයේ දක්වා ඇති හැඩයට නැවත සකස් කරයි. අරාවෙහි හැඩය අරාවෙහි එක් එක් අක්ෂයේ දිගෙහි දෛශිකයකි. පරිමාණයේ හැඩය හිස් දෛශිකයයි. මේ අනුව, අනුකෘතිය තුනකින් තුනකට 3 3⍴Aනැවත හැඩගස්වයි A. දෙවන සංකල්පය වන්නේ මෙහි එකතු කිරීම භාවිතා කරන ආකාරයයි: අපි එකතු කරන්නේ ¯1(ඕවර් බාර් එකක්), එනම් negative ණ එකක් (negative ණ ¯සංඛ්‍යා නියම කිරීමට උපසර්ගයක් -වන අතර ක්‍රියාකරුවෙකු වන අතර) අරාවකට. ඔපෙරන්ඩ් දෙකෙහි විවිධ හැඩයන් ඇත, එබැවින් අඩු හැඩය සහිත ඔපෙරන්ඩ් අනෙක් ඔපෙරන්ඩ් වෙත බෙදා හරිනු ලැබේ, ජනනය කරන ලද අනුකෘතියේ සෑම අයිතමයකින්ම එකක් අඩු කරයි.

දිග 9

+.×⍨3 3⍴A

A, 3 න් 3 න්‍යාසයකට නැවත සකස් කර, එය සමඟ ගුණනය කරයි. මෙම .(තිතක්) ක්රියාකරු කාර්යයන් දෙකක් ගනී සහ වඩී අභ්යන්තර නිෂ්පාදන පළමු කාර්යය නියෝජනය කොහේද, ඊට අමතරව හා දෙවන කාර්යය ගුණ. සරල, පැරණි, අනුකෘති ගුණ කිරීම යනු +.×පොදු ප්‍රභේදයකි ≠.∧(එහිදී සමාන නොවන අතර (ඉහළ භාරකාරත්වය) තාර්කික සහ) බූලියන් න්‍යාස සඳහා; බොහෝ රසවත් දේවල් අභ්යන්තර නිෂ්පාදනයක් ලෙස වෙනුවට ඇතැම් සමාගම් සමග ආදර්ශනය කළ හැක +සහ ×.

දිග 10

(.5×⊢+÷)⍣≡

(කියවන්න: වම් වරහන් තිත පහක් දකුණට ඇලවීම සහ දකුණු වරහන් තාරකා-ඩයරෙසිස් බෙදීම) බබිලෝනීය ක්‍රමය භාවිතා කරමින් තාත්වික වර්ග වර්ග ගණනය කරන්න . වම් තර්කය යනු ඔබට වර්ග මූල ගණනය කිරීමට අවශ්‍ය අංකයයි, නිවැරදි තර්කය යනු වර්ග මූලයේ ආරම්භක අනුමානයයි. මට මුලින් අවශ්‍ය වූයේ අර්ථවත් ආරම්භක අනුමානයක් සැපයීමට ය, නමුත් මම අක්ෂර වලින් ඉවතට ගියෙමි ( ආරම්භක අනුමානය ලෙස අංකය භාවිතා කිරීමට එකතු කරන්න).

ඉතින් මෙය ක්‍රියාත්මක වන්නේ කෙසේද? (.5×⊢+÷)පළමුව , වම් කොටස සමඟ ආරම්භ කරමු . මෙම ප්‍රකාශනය J හි ආරම්භ වූ නිහ it අංකනය භාවිතා කරයි, පසුව එය ඩයලොග් ඒපීඑල් වෙත නැවත ගෙන එන ලදි. නිහ it අංකනය ආරම්භකයින් සඳහා ටිකක් අපහසු බැවින් කරුණාකර මෙම කොටස ප්‍රවේශමෙන් කියවන්න. +/÷≢කථනයේ එක් කොටසකට “සාමාන්‍ය” විග්‍රහ කිරීමේ රීති නිරාකරණය නොකරන හුදකලා අනුක්‍රමයක් දුම්රිය ලෙස හැඳින්වේ. ශ්‍රිත දෙකක් හෝ තුනකින් යුත් දුම්රියක් ශ්‍රිතයක් නිපදවන අතර (නැවත නැවත විභේදනය කිරීමෙන්) ඕනෑම දිගකින් යුත් ශ්‍රිත දුම්රියක් ද ශ්‍රිතයක් නිපදවයි. කාර්යයන් තුන සඳහා දුම්රිය fghහැසිරේ {(⍺f⍵)g⍺h⍵}, එනම්, fහා hඑහි ප්රතිඵලයක් කාර්යය තර්ක හා මෙම ප්රතිඵලය යෙදිය වී ඉල්ලා සිටිනg . අරාවෙහි දුම්රියක් සහ කාර්යයන් දෙකක් වැනිAfgහැසිරෙන්නේ {Af⍺g⍵}, මෙය,gඑහි ප්‍රති ing ලයක් ලෙස ලැබෙන ශ්‍රිතයේ තර්ක සඳහා යොදන අතර එම ප්‍රති Aresult ලය අදාළ වේ f. කාර්යයන් දෙකක දුම්රියකට අර්ථකථනයක් ද ඇත, එය ප්‍රලේඛනයේ විස්තර කර ඇති නමුත් මෙම උදාහරණයේ භාවිතා නොවේ.

මෙම විශේෂිත දුම්රියේදී, එක් නව කාර්යයක්, (නිවැරදි පියවර) භාවිතා කරයි. එය හැසිරෙන්නේ {⍵}, එහි නිවැරදි තර්කය ඉදිරිපත් කරමිනි. මේ අනුව, සමස්ත ප්‍රකාශනය සමාන වේ {.5×⍵+⍺÷⍵}, එය බබිලෝනීය සූත්‍රයේ පුනරාවර්තන පියවර පමණි. නිහ it අංකනය ගොල්ෆ් ක්‍රීඩකයාට ප්‍රයෝජනවත් වන්නේ කෙසේදැයි බැලීම පහසුය; අදාළ වන විට වටිනා චරිත කිහිපයක් රැවුල කැපීමට එය ඔබට ඉඩ සලසයි.

ප්‍රහේලිකාවෙහි අවසාන කොටස වන්නේ (තරු ඩයරෙසිස්), බල ක්‍රියාකරු ය. අයිතිය තර්කය රැසක් නම්, f⍣A⍵අදාළ fකිරීමට ක් Aවතාවක්. උදාහරණයක් ලෙස, f⍣3⍵සමාන වේ fff⍵. ගණනය negative ණ විය හැකි අතර, ඒපීඑල් හි ප්‍රතිලෝම ශ්‍රිතයක් අනුමාන කිරීමට උත්සාහ කරන අතර එය fඅදාළ වේ. අයිතිය තර්කය නම් ශ්රිතයක් වේ, ද, f⍣g⍵අදාළ fකිරීමට තෙක් (fY)gYඑහිදී Yනැවත නැවත අයදුම් කිරීම වේ fකිරීමට . සැලකිය යුතු නම් gවේ =(සමාන) හෝ (එම), f⍣≡එය ගණනය විසඳුමක් ස්ථානය පිළිබඳf. බබිලෝනීය ක්‍රමයට අපට අවශ්‍ය වන්නේ මෙයයි! ප්‍රති result ලය අභිසාරී වන තෙක් නැවත ක්‍රියා කිරීමට අපට අවශ්‍යය. අවසාන වශයෙන්, නම් වූ dyadic ශ්රිතයක් ලෙස ආයාචනා කරයි දේවල් යුගලයක් යෙදිය, වම් තර්කය බැඳී සිටින fවමේ, එනම්, ⍺f⍣g⍵සමාන වේ (⍺∘f)⍣g⍵එහිදී A∘fහැසිරෙනු වැනි {Af⍵}.


ඔබට තවත් ඡන්ද ලැබී ඇත! අපට තවත් කිහිපයක් ලබා ගත හැකිද?
luser droog

@luserdroog ෂුවර්, මට තව ටිකක් හිතන්න දෙන්න.
FUZxxl

මට මෙය සංස්කරණය කර දීර් extend කළ හැකිද?
ඇඩම්

@ ඇඩම් ඔව්, කරුණාකර.
FUZxxl

∘.×⍨a මට වටිනාකම් දෝෂයක් ලබා දෙයි . මම එය නිවැරදිව භාවිතා කරනවාද?
සයොස්

37

මැට්ලබ්

ස්නිපෙට් 26 - මෙට්‍රික්ස් වලට වඩා නැවත කරන්න

මෙය මම මෑතකදී සොයාගත් දෙයක්. සාමාන්‍යයෙන් ඔබ ලූප සඳහා දී ඇති දෛශිකයක් හරහා නැවත ක්‍රියා කරයි. නමුත් දෛශික වෙනුවට ඔබට rand(10)මෙට්‍රික්ස් භාවිතා කළ හැකිය ( 0 සහ 1 අතර ඒකාකාරව බෙදා හරින ලද සංඛ්‍යා සහිත 10x10 න්‍යාසයක් නිෂ්පාදනය කරයි).

for k=rand(10);disp(k);end

මෙය පසුව එක් පුනරාවර්තනයකට අහඹු අනුකෘතියේ එක් තීරු දෛශිකයක් පෙන්වයි.

ස්නිපෙට් 25 - පහසු කුමන්ත්‍රණයක්

මැට්ලැබ් හි කුමන්ත්‍රණය කිරීම පහසු බව අපි දනිමු, නමුත් සුපිරි පහසු කාර්යයක් ඇත ezplot ( E-Zඑය ලබා ගන්න? මම එය ලබා ගන්නා තෙක් සෑහෙන කාලයක් ගතවිය, මම Zසෑම විටම අක්ෂර වින්‍යාසය sedවෙනුවට c, කුමක් වුවත් ...) හැමෝම ඉලිප්සාකාර වක්‍ර වලට කැමතියි:

ezplot('y^2-x^3+9*x-10.3')

ඉලිප්සාකාර වක්‍රය

ස්නිපෙට් 24 - ඒකාබද්ධ කිරීම

ඒකාබද්ධ කිරීම සඳහා පැරණි විලාසිතාවේ වචනය (නමුත් තවමත් සංඛ්‍යාත්මක ගණනය කිරීම් වල භාවිතා වේ) 'චතුරස්රය', පහත දැක්වෙන වචනයේ ප්‍රති result ලය කුමක් දැයි ඔබට අනුමාන කළ හැකිද?

quad(@(x)4./(1+x.^2),0,1)

ස්නිපෙට් 23 - රූප

ඇත්ත වශයෙන්ම මැට්ලැබ් රූප සමඟ වැඩ කළ යුතු විද්‍යා scientists යින් අතර ඉතා ජනප්‍රියය (උදා: වෛද්‍ය රූප විශ්ලේෂණය), එබැවින් මෙහි ඉතා පහසු කාර්යයකි. පළමු තර්කය රූපයයි, දෙවන කෝණය සහ තුන්වන විකල්ප තර්කය මෙහි මුල් ප්‍රමාණයට කපා දැමීමේ ශ්‍රිතය පවසයි.

imrotate(rand(99),9,'c')

මෙහි

ස්නිපෙට් 22 - සංගීතය

load handel;sound(y,Fs)

එය මේ හා සමාන වනු ඇත (යූ ටියුබ් සබැඳිය)

ස්නිපෙට් 21 - අවකලනය හා ඒකාබද්ධ කිරීම

polyint(polyder(p),c)

එම ශ්‍රිත දෙක භාවිතා කිරීමෙන් ඔබට බහුපද පහසුවෙන් හඳුනාගත හැකිය. අනුකලනය කිරීමේදී, ඔබට නියත වන දෙවන තර්කය සම්මත කළ හැකිය.

ස්නිපෙට් 20 - බහුපද වෙත ආපසු

p=poly(r);cp=poly(A)

මුල් සහිත බහුපද අවශ්‍යද r? පහසුයි : p=poly(r). අනුකෘතියක ලාක්ෂණික බහුපද අවශ්‍යද A? පහසුයි : cp=poly(A). ඒ නිසා roots(p)හරියට ම r(හෝ පිළිබඳ සංයෝගයටr ).

ස්නිපෙට් 19 - තවත් මැජික් උපක්‍රමයක්

fminsearch(fun,x0);

මෙම කාර්යයට නියත වශයෙන්ම ආදරය කරන අය සිටිති. මෙය මූලික වශයෙන් කිසිදු කොන්දේසියක් නොමැතිව අවම වශයෙන් funආරම්භක අගයක් x0(දෛශිකයක් විය හැකිය) සොයයි fun. දෝෂ / ද penalty ුවම් / වෛෂයික ක්‍රියාකාරිත්වය වෙන්කර හඳුනා ගැනීමට ඔබට නොහැකි (හෝ ඔබ කම්මැලි) කුඩා ආකෘති සවි කිරීම සඳහා මෙය විශිෂ්ටයි. එය ඔබට උපකල්පන කළ නොහැකි කාර්යයන් සඳහා ඉතා වේගවත් වන නෙල්ඩර්-මීඩ් සිම්ප්ලෙක්ස් ඇල්ගොරිතම භාවිතා කරයි .

ස්නිපෙට් 18 - බහුපද සඳහා හැඳින්වීම

p=polyfit(x,y,deg)

මැට්ලැබ් බහුපද සමඟ සාර්ථකව කටයුතු කිරීම සඳහා හොඳ විසඳුමක් ඇත. polyfitඔබ සමඟ අවම වශයෙන් වර්ගවල බහුපදයක් degලබා ගනී x,y. ඔබට pබහුපදවල සංගුණක ගබඩා කරන දෛශිකයක් ලැබේ , මන්ද එය ඔබට බහුපදයක් නිරූපණය කිරීමට අවශ්‍ය එකම දෙයයි. ඔබ නැවත ස්නිපෙට් 15 වෙත ගියහොත්, ඔබට ලිවීමෙන් එකම දේ කළ c = polyfit(x,y,2)හැකිය. එබැවින් උදා: [1,-2,3]බහුපද නියෝජනය කරයි x^2 - 2*x+3. ඇත්ත වශයෙන්ම වෙනත් මූලික හෝ අත්තනෝමතික කාර්යයන් සවි කිරීම සඳහා කාර්යයන් ද ඇත.

ස්නිපෙට් 17 - කෝණ සහ අත්හිටුවීම්

unwrap(angle(c))

සංකීර්ණ සංඛ්‍යා වල 'අඛණ්ඩ' දෛශිකයක තර්කය ලබා ගැනීමට ඔබට අවශ්‍ය නම්, ඔබට බොහෝ විට අත්හිටුවීමක් ඇති බව පෙනෙන අගයන් ආපසු ලැබේ. උදා අතර angle([-1-0.2i,-1-0.1i,-1,-1+0.1i,-1+0.2i])ඔබට ලැබෙනුයේ සහ අතර කෝණ පමණක් ලබා දෙන [-2.94,-3.04,3.14,3.04,2.94]බැවිනි . කාර්යය මෙය බලා ගනීවි! ඔබට මෙවැනි අත්හිටුවීමක් ලැබුනේ නම්, ඒවා ඉවත් කිරීම සඳහා එය බහු ගුණයක් එකතු කරනු ඇත : '[-2.94, -3.04, -3.14, -3.24, -3.34]' මෙය 2d-matrices සඳහා පවා ක්‍රියා කරයි! ඔබ numbers ණ තාත්වික කොටසක් සමඟ සංකීර්ණ සංඛ්‍යා වල තර්කය කුමන්ත්‍රණය කළහොත් ඔබට පළමු ග්‍රැෆික්ස් ලැබෙනු ඇත, ඔබට පළමු රූපය ලැබෙනු ඇත.angle-pipiunwrap2*pi

නොකැඩීමකින් තොරව unrap සමඟ

[x,y] = meshgrid(-1:0.01:0,-0.5:0.01:0.5);
z = x+i*y;
imagesc(angle(z))
imagesc(unwrap(angle(z)))

ස්නිපෙට් 16 - පරිමාණ නිෂ්පාදනයක්

[1;2;3]'*[4;5;6]

ඇත්ත වශයෙන්ම ක්‍රමවේදයන් තුළ (වැනි dot) ගොඩනගා ඇත , නමුත් අනුකෘති-පරිවර්තන ක්‍රියාකරු සමඟ එය එතරම්ම 'සරල ය. ඔබට පේළි හෝ තීරු දෛශික තිබේදැයි ඔබ නොදන්නේ නම්, ඔබට a(:)'*b(:)කොතැනද භාවිතා කළ හැකියa(:) සෑම විටම තීරු දෛශිකයක් ලබා දෙන .

ස්නිපෙට් 15 - රේඛීය අවම චතුරස්රයන්, මැජික් දණ්ඩක් සහිත කැත ක්රමය

[x.^2,x,x.^0]\y

xx- අක්ෂයේ අගයන් සහිත (තීරු) දෛශිකය, yy ෝෂාකාරී y- අගයන් වේ. ටයිප් c=[x.^2,x,x.^0]\yකර ඔබට 2 වන උපාධි බහුපදයේ සංගුණක ලැබේ. ඇත්ත වශයෙන්ම ඔබට මැට්ලැබ් හි බිල්ඩින් ෆිට් බිලියනයෙන් එකක් භාවිතා කළ හැකිය (කෙතරම් නීරසද) ඇයි මැජික් මායාකාරිය භාවිතා නොකරන්නේ? =)

x = (-1:0.1:2)';
y = 3*x.^2-2*x+1+randn(size(x)); %add some gaussian (normal) noise
A = [x.^2,x,x.^0];
c = A\y              %output: c = ]3.0049; -2.3484; 1.1852]
plot(x,y,'x',x,A*c,'-')

ලින්රෙග්

ස්නිපෙට් 14 - ප්‍රස්තාර

gplot(graph,x)

ප්‍රස්ථාරයක් සැලසුම් කරන්නේ එලෙස ය. graphවර්ග xයාබද අනුකෘතියක් අඩංගු විය යුතු අතර එක් එක් නෝඩයේ ඛණ්ඩාංක අඩංගු nx2 න්‍යාසයක් විය යුතුය. අහඹු ප්‍රස්ථාරයක් සෑදීමට ඉඩ දෙමු: graph = triu( rand(8)>.7)(0s සහ 1s අඩංගු අනුකෘතියක් සාදන්න, සිත්ගන්නා ප්‍රස්ථාරයක් සඳහා ඉහළ ත්‍රිකෝණය පමණක් ලබා ගන්න). x = rand(8,2)ඉන්පසු සමහර විසිතුරු මෝස්තර සමඟ කුමන්ත්‍රණය කරන්නgplot(graph,x,'k-.d')

ප්‍රස්ථාරය (මම මෙය නවීන කලාවක් ලෙස ප්‍රකාශ කරමි.)

ස්නිපෙට් 13 - මෙෂ්ග්‍රිඩ්

meshgrid(a,b)

මෙය වඩාත් විශ්මයජනක කාර්යයන්ගෙන් එකක් වන අතර එය සරල නමුත් ප්‍රයෝජනවත් වේ. ඔබට විචල්‍ය දෙකක් මත පදනම්ව සත්‍ය වටිනාකමක් ඇති ශ්‍රිතයක් සැලසුම් කිරීමට අවශ්‍ය නම්, ඔබට x- අක්ෂය සඳහා අගයන් දෛශිකයක් සහ y- අක්ෂය සඳහා එකක් (a සහ b) අර්ථ දැක්විය හැකිය. මෙෂ්ග්‍රිඩ් සමඟ, ඔබට ලෙන් (අ) x ලෙන් (ආ) ප්‍රමාණයේ න්‍යාස දෙකක් සෑදිය හැකිය, එහිදී එක් දෛශිකයක් aඇත්තේ තීරුව ලෙස වන අතර අනෙකෙහි ඇත්තේ දෛශික පමණක් bපේළි ලෙස ය. භාවිත උදාහරණය: a = -3:0.2:3;[x,y]=meshgrid(a)(දෛශික දෙකම එක හා සමාන නම්, එකක් පමණක් සම්මත කිරීම ප්‍රමාණවත් වේ.) එවිට ඔබට ටයිප් කළ හැකියz=x.^2+-y.^2 කර උදා.mesh(x,y,z). මෙය අත්තනෝමතික මානයන් ගණනක් සඳහා ක්‍රියා කරයි! එබැවින් මෙය කුමන්ත්‍රණය කිරීම සඳහා පමණක් නොව, විවිධ දෛශික යනාදියෙහි සංයෝජන ලබා ගැනීම සඳහා ද විශාල වේ ... (එබැවින්, ඔබට නව කේත ගොල්ෆ් භාෂාවක් නිර්මාණය කිරීමට අවශ්‍ය නම්, මෙය එහි තිබිය යුතුය, ඔබ කෙටි භාවිතා කිරීමට වග බලා ගන්න ශ්‍රිතයේ නම ...)

දැලක්

ස්නිපෙට් 12 - කුමන්ත්රණය

plot(x,x.^2)

දෛශිකයක් ගෙන ඉතිරි කොටස කිරීමට x=-3:0.5:3ඉඩ දෙන්න plot. කුමන්ත්‍රණය කිරීම සඳහා තවත් බොහෝ කාර්යයන් ඇත, මෙය ඔබට සෑම විටම භාවිතා කළ හැකි ඉතා මූලික එකකි. එය ලිවීමට දැනටමත් ප්‍රමාණවත් වන අතර, අරාව දර්ශක වලට එරෙහිව plot(v)දත්ත vසැකසෙනු ඇත. එය කෙතරම් සරලද? ඔබේ කුමන්ත්‍රණය මෝස්තර කිරීමට ඔබට අවශ්‍ය නම්, තුන්වන තර්කයක් ලෙස නූලක් එක් කරන්න: උදා: 'r:o'දත්ත ලක්ෂ්‍ය වටා රවුම් සහිත රතු, තිත් රේඛාවක් සාදනු ඇත. ඔබට බහු බිම් අවශ්‍ය නම්, තවත් තර්ක එකතු කරන්න, නැතහොත් දෛශික වෙනුවට matrices භාවිතා කරන්න. මෝඩකම.කුමන්ත්රණය

ස්නිපෙට් 11 - ශ්‍රිතය හසුරුවයි

f=@(x,y)x+y

මෙය ක්‍රියාකාරී හසුරුවක ගබඩා කර ඇති උදාහරණයකි f. දැන් ඔබට ඇමතුමක් f(1,2)ලබා ගත හැකිය 3. මැට්ලැබ් හි ක්‍රියාකාරී හැසිරවීම් ගණිත කාර්යයන් සඳහා ඉතා ප්‍රයෝජනවත් වේ (උදා: කුමන්ත්‍රණය) ඔබට ඒවා එක පේළියකින් අර්ථ දැක්විය හැකිය. නමුත් එක් අඩුපාඩුවක් නම් ඔබට කොන්දේසි හෝ කෑල්ලක් නොමැති වීමයි (එබැවින් පුනරාවර්තනයක් නැත). ඔබට මෙය අවශ්‍ය නම්, ඔබ functionප්‍රකාශය භාවිතා කර නව ශ්‍රිතයක් ප්‍රකාශ කළ යුතු අතර, ඒ සෑම එකක්ම වෙනම ගොනුවක ගබඩා කළ යුතුය ... (WHYYYYYY ????)

PS: ඔබ whyකොන්සෝලය ටයිප් කළහොත් ඔබට තවත් විනෝදජනක පාස්කු බිත්තරයක් ලැබෙනු ඇත: ඔවුන් අහඹු පණිවිඩ නිපදවන විශාල කාර්යයක් කළේය:

The tall system manager obeyed some engineer.
The programmer suggested it.
It's your karma.
A tall and good and not excessively rich and bald and very smart and good tall and tall and terrified and rich and not very terrified and smart and tall and young hamster insisted on it.

... ඔබ කොන්සෝලය විමසීමට තරම් මංමුලා සහගත නම් එය ඉතා සැනසිලිදායකය why...

ස්නිපෙට් 10 - මගේ අනුකෘතිය පෙනෙන්නේ කෙසේද?

spy(eye(9))

ඔබ දන්නා පරිදි මේ වන eye(9)විට 9x9 අනන්‍යතා අනුකෘතියක් නිර්මාණය කරයි. spyන්‍යාසයේ ශුන්‍ය / නොසරෝ ඇතුළත් කිරීම් පෙන්වන a නිර්මාණය කරයි. නමුත් ඕනෑම ද්විමය 2d දත්ත ප්‍රදර්ශනය කිරීම සඳහා ඔබට එය භාවිතා කළ හැකිය. ඔබ spyතර්කයකින් තොරව අමතන්නේ නම් ඔබට ලස්සන කුඩා පාස්කු බිත්තරයක් ලැබෙනු ඇත =)

අනන්‍යතාවය පිළිබඳ ඔත්තු බැලීම ඔත්තු පාස්කු

ස්නිපෙට් 9

kron(a,b)

මෙම kronඋත්සවය ඇගයීමට ලක් Kronecker නිෂ්පාදන මැට්ට්රිස් දෙකක්. විචලනය කළ බහුමානීය රේඛීය ක්‍රියාකරුවන් සඳහා මෙය ඉතා ප්‍රයෝජනවත් වේ. කේත ගොල්ෆ් ක්‍රීඩාව සඳහා මම සෑම විටම එය භාවිතා කළෙමි. aසහ ඇතුළත් කළ හැකි සියලුම නිෂ්පාදන ඔබට අවශ්‍යද b? kron(a,b), හියර් යූ ගෝ.

ස්නිපෙට් 8

5*a\b.*b

හරි මෙන්න මම විවිධ ක්‍රියාකරුවන් 3 ක් මිශ්‍ර කළා. භාවිතා කිරීමෙන් ඔබට ඕනෑම අනුකෘතියක් පරිමාණයකින් ගුණ කළ හැකිය *. (එවිට අනුකෘතියේ සෑම ප්‍රවේශයක්ම එම පරිමාණයෙන් ගුණනය වේ). නමුත් *අනුකෘති ගුණ කිරීම ද සිදු කරයි. ඔබ prepend නම් ඔබ ලබා dot .*මේ එක ගුණනය එම ප්රමාණය නොව, මැට්ට්රිස් දෙකක් ක්රියාකරු, නැණවත් ප්රවේශය . ( /සහ වැනි අංශ ක්‍රියාකරුවන් සමඟද මෙය කළ හැකිය \.)

ඊළඟට, බැක්ස්ලෑෂ් ක්‍රියාකරු වම් බෙදීමක් ලෙස භාවිතා කළ හැකිය ( /ඔබ පුරුදු පරිදි දකුණු බෙදීම සිදු කරන දෙයට වෙනස්ව ) නමුත් එය මැට්ලැබ්හි වඩාත් ප්‍රබල හා ලාක්ෂණික ක්‍රියාකරු වේ: එය 'අනුකෘති බෙදීමක්' සිදු කරයි. ඔබට රේඛීය සමීකරණ පද්ධතියක් ඇති A*x=bබවත් එය විසඳීමට ඔබට අවශ්‍ය බවත් කියමු x, එවිට ඔබට ටයිප් කළ හැකිය x=A\b. තවද \(ඔබට භාවිතා කළ හැකි /නමුත් එය න්‍යාසයන් සඳහා එතරම් සුලභ නොවේ) පළමුව ඉක්මනින් අනුකෘතිය විශ්ලේෂණය කරන අතර මෙම ප්‍රතිලෝම-ගුණ කිරීම සිදු කිරීම සඳහා වේගවත්ම ඇල්ගොරිතම සොයා ගැනීමට ප්‍රති results ල භාවිතා කරයි! (උදා: මෙහි බලන්න )

නමුත් ඔබට එය අඩු හෝ අධි-නිර්වචනය කළ පද්ධති සඳහා භාවිතා කළ හැකිය (ප්‍රතිලෝමයක් නොමැති තැන හෝ අනුකෘතිය පවා හතරැස් නොවන තැනක, උදා: අවම වශයෙන් වර්ග ක්‍රම සඳහා). මෙය සැබවින්ම මැට්ලැබ්හි මැජික් දඩයමයි.

ස්නිපෙට් 7

[a,b;c]

හරි, එය එතරම් පෙනෙන්නේ නැත, නමුත් එය ඉතා පහසු මෙවලමකි: අනුකෘති සම්මුතිය. ප්‍රකාශන දෙකක් අතර කොමාවකින් අදහස් වන්නේ ඒවා තිරස් අතට සමපාත වන බවයි (එයින් අදහස් කරන්නේ ඒවාට එකම උස තිබිය යුතු බවයි) සහ අර්ධ සළකුණක් යනු පෙර 'රේඛාව' ඊළඟ 'රේඛාවට' ඉහළින් ඇති බවයි (රේඛාව අනුව මම අදහස් කරන්නේ අර්ධ සළකුණු දෙකක් අතර ඇති සියල්ලයි. සරල උදාහරණයක් පමණි: a = [1,2;3,4]; b = [5;6]; c =[7,8,9]; d=[a,b;c];ප්‍රති result ලය සමාන වනු dඇත d=[1,2,5; 3,5,6; 7,8,9]. (ලබා ගන්න?)

ස්නයිප් 6

eye(7)

මෙම ශ්‍රිතය පූර්ණ 7x7 අනන්‍යතා අනුකෘතියක් නිපදවයි. එය එතරම් පහසු ය. ඒ හා සමාන වෙනත් කාර්යයන් nan,inf,ones,zeros,rand,randi,randnඇත. . ඔබට අර්ධ අවකල සමීකරණ සංඛ්‍යාත්මකව විසඳීමට සිදුවුවහොත් පහසුය. . ඔබට අවශ්‍ය අනුකෘතිය පහසුවෙන් 'රචනා' කළ හැක්කේ එබැවිනි.

ස්නිපෙට් 5

a(a>0.5)

අරා වලට ප්‍රවේශ වීමේ සියලු ක්‍රමවලින් ඔබ වෙහෙසට පත් නොවනු ඇතැයි මම බලාපොරොත්තු වෙමි. සමහර කොන්දේසි සපුරාලන අරාවෙහි සියලුම අංග ලබා ගැනීමට පහසු ක්‍රමයක් මෙය පෙන්වයි. මෙම අවස්ථාවේ දී ඔබට a0.5 ට වඩා වැඩි සියලුම මූලද්‍රව්‍යවල දෛශිකයක් ලැබේ . ප්‍රකාශනය මඟින් කොන්දේසිය තෘප්තිමත් කරන සෑම මූලද්‍රව්‍යයක් සඳහාම a>0.5සමාන ප්‍රමාණයේ අනුකෘතියක් aසහ 0එසේ නොවන සෑම මූලද්‍රව්‍යයක් සඳහාම නැවත ලබා දේ.

ස්නිපෙට් 4

a(:)

මෙය නැවතත් aතීරු දෛශිකයක් (nx1 matrix) ලෙස අන්තර්ගතය ලබා දෙයි. ඔබ ඔබේ දත්ත තීරු හෝ පේළි දෛශිකයක් ලෙස ගබඩා කර ඇත්දැයි නොදන්නේ නම් හෝ ඔබේ දත්ත ද්විමාන නම් (උදා: 2d සීමිත වෙනස්කම් ක්‍රම සඳහා).

ස්නිපෙට් 3

1:9

අර්ධ සළකුණු ක්‍රියාකරු සමඟ ඔබට පහසුවෙන් දෛශික සෑදිය හැකිය (මේ අවස්ථාවේ දී 1xn matrices). මෙම අවස්ථාවේදී ඔබට දෛශිකය ලැබේ [1,2,3,4,5,6,7,8,9]. වෙනත් දෛශික පෙති වලට ප්‍රවේශ වීම සඳහා මෙය විශේෂයෙන් හොඳයි. උදා: දෛශිකයේ a(2:4)දෙවන, තෙවන සහ සිව්වන මූලද්‍රව්‍යයට ප්‍රවේශ වේ a. ඔබට එය පියවරෙන් පියවර විශාලත්වයකින් 0:0.5:10හෝ භාවිතා කළ හැකිය .

ස්නිපෙට් 2

i;

අර්ධ සළකුණක් කොන්සෝලය සඳහා ප්‍රතිදානය යටපත් කරයි. ඔබට එය හොඳ හෝ නරක දෙයක් ලෙස දැකිය හැකිය, නමුත් දේවල් නිදොස් කිරීම සඳහා මම එයට කැමතියි. ගණනය කිරීම් ආදිය ඕනෑම අර්ධයක් මගින් ප්‍රතිදානය යටපත් නොකරන තාක් කල් එහි ප්‍රති result ලය කොන්සෝලය වෙත ස්වයංක්‍රීයව මුද්‍රණය වේ.

ස්නිපෙට් 1

i

සංකීර්ණ අංකය යනු මූලික අංක වර්ගයකි. (බොහෝ අය iලූප සඳහා ගණන් කිරීමේ විචල්‍යයක් ලෙස භාවිතා කරන විට එය ඉක්මවා යයි.)

හැඳින්වීම

නොදන්නා අය සඳහා, මැට්ලැබ් යනු ක්‍රමලේඛන භාෂාවකි (හොඳ IDE සහිත එය මැට්ලැබ් ලෙසද හැඳින්වේ?) එය මුලින්ම සංඛ්‍යාත්මක ගණනය කිරීම් * සහ දත්ත හැසිරවීම සඳහා අදහස් කෙරේ. ("ඔක්ටේව්" නමින් විවෘත මූලාශ්‍රයක් ඇත) එය ** පමණක් අර්ථ නිරූපණය කර ඇති බැවින් එය ඉතා වේගවත් නොවේ, නමුත් එහි ශක්තිය වන්නේ ඔබට පහසුවෙන් මෙට්‍රික්ස් හැසිරවිය හැකි අතර බොහෝ ඇල්ගොරිතම ප්‍රශස්ත ආකාරයකින් ක්‍රියාත්මක වන අතර ඒවා ඉතා වේගයෙන් ධාවනය වේ matrices මත යොදන විට. එය ද ඉගෙන ගැනීමට ඉතා පහසු භාෂාවකි, නමුත් ඔබ එය නරක භාෂා 'ක්‍රමලේඛන' පුරුදු උපකල්පනය කරන බැවින් එය ආරම්භක භාෂාවක් ලෙස නිර්දේශ නොකරමි.

* එය අර්ථකථනය කරන ලද භාෂාවක් බැවින් එය මිල අධික ව්‍යාපෘති සඳහා ඉතා මන්දගාමී විය හැකි නමුත් ඔබ සතුව සමාන්තරකරණ ක්‍රම තිබේ, තවද ඔබට වැඩසටහනක් ක්‍රියාත්මක කිරීම සඳහා පරිගණක කිහිපයක්ම භාවිතා කළ හැකිය. නමුත් ඔබට සැබවින්ම වේගවත් වීමට අවශ්‍ය නම් මම හිතන්නේ ඔබ තවමත් සී හෝ ෆෝට්රාන් හෝ ඒ වගේ පිස්සු දේවල් මත රඳා පවතී. නමුත් තවමත් ක්‍රියාත්මක කරන ලද බොහෝ ඇල්ගොරිතම (අනුකෘති ගුණ කිරීම, රේඛීය සමීකරණ විසඳීමේ පද්ධති ආදිය) දැඩි ලෙස ප්‍රශස්තිකරණය කර ඇති අතර ඒවා ඉතා හොඳින් ක්‍රියාත්මක වේ. නමුත් ඔබ මැට්ලැබ්හි එකම ඇල්ගොරිතම ක්‍රමලේඛනය කරන්නේ නම්, ඔබට බලා සිටීමට සිදුවනු ඇත =) (ඔබ වෙනත් භාෂාවලින් පැමිණෙන විට නොදැනුවත්වම කළ හැකි දෙයක් නම්, ඔබ ලූප සඳහා භාවිතා කරනවා වෙනුවට ඔබේ මෙහෙයුම් දෛශිකකරණය කරන්නේ නම්, ඔබට මැට්ලැබ් හි වැඩි කාලයක් ඉතිරි කර ගත හැකිය. .)

** ඔබට ඔබේ වැඩසටහන් සම්පාදනය කළ හැකිය, නමුත් එය ප්‍රධාන වශයෙන් ප්‍රභව කේතය කියවිය නොහැකි ගොනුවක් බවට පරිවර්තනය කරයි (මිනිසුන් සඳහා), එය ක්‍රියාත්මක කිරීමේදී එතරම් වේගවත් නොවේ.


1
මට මෙම ගැටළුව බොහෝ විට ඇත ... iයම් දෙයකට සැකසීම සහ එය සංකීර්ණ ඒකකය නොවන විට අනපේක්ෂිත හැසිරීම් අත්විඳීම.
feersum

3
ලස්සන පාස්කු බිත්තරයක්! ඔබ 'සංස්කරණ ඔත්තු' ටයිප් කළහොත් කේත අපැහැදිලි කිරීම පිළිබඳ උදාහරණයක් ඔබට සොයාගත හැකිය :-)
අබුලාෆියා

1
මම මෙය ඉහළ නැංවීමට ගිය අතර පසුව මට වැටහී ඇති බව මට වැටහුණි. අහෝ, මට එය නැවත ඉහළ නැංවිය හැකි නම් පමණි. දිගටම එනවා, la ෆ්ලවර්!
ඇලෙක්ස් ඒ.

2
ඔබ පෙන්විය යුතු දේ පිළිබඳ ආනුභාවයෙන් තොර නම්, මට Mathworks බ්ලොග් අඩවිය නිර්දේශ කළ හැකිය : ලොරන් වර්ෂුර් විසින් MATLAB කලාව පිළිබඳ බොහෝ විට ඔවුන් විස්තර කරන්නේ චරිත සීමාව තුළ පෙන්විය හැකි හොඳම භාවිතයන් ය. කුතුහලය සලකා සඳහා Matlab අතහැර , සහ ප්රලේඛනය කාර්යයන් සඳහා ඔබට යන්න පුළුවන් ලක්ෂණ Yair Altman විසින් සමා Matlab
ඩෙනිස් Jaheruddin

1
laflawr - ෆැක්ටෝයිඩ් සඳහා, M තිහාසිකව, MATLAB නිර්මාණය කරන ලද්දේ නිව් මෙක්සිකෝ විශ්ව විද්‍යාලයේ පරිගණක විද්‍යාව හදාරන සිසුන් සඳහා ය (ක්ලීව් මෝලර් එවකට සභාපති විය) ඒ සඳහා පහසු අතුරු මුහුණතක් ලෙස සඳහන් කිරීම ද සිසිල් ය. FORTRAN ඉගෙන නොගෙන LINPACK සහ EISPACK (... දැන් LAPACK විසින් අභිබවා යමින් පවතී ) .... සහ එහි භාවිතයේ පහසුව නිසා එය ඉතා ඉක්මණින් වෙනත් අධ්‍යයන ආයතන වෙත ව්‍යාප්ත විය :)
rayryeng

34

සී

පහත දැක්වෙන කුඩා කොටස් මෙහි උත්සාහ කරන්න

දිග 20 ස්නිපටය:

q~{]__~z\z<=\~*0>*}*

මිනි-මොඩ් කැල්කියුලේටරය . ප්රශ්නයෙන් උපුටා ගැනීමකි:

මෙම minmod කාර්යය හුරු පුරුදු වූ ප්රභේදයකි යි අර්ධ අවකල සමීකරණ සඳහා බෑවුම් සහිත-සීමාකාරී ඉහළ යෝජනාව යෝජනා ක්රම දිස් වන. බෑවුම් ගණනාවක් ලබා දී ඇති විට, එය බෑවුම් අතර සාපේක්ෂ සලකුණු ගැන සැලකිලිමත් වන අතරම, පැතලි බෑවුම තෝරා ගනී.

ශ්‍රිතය අත්තනෝමතික පරාමිති ගණනක් ගනී. එවිට minmod (x 1 , x 2 , ..., x n ) ලෙස අර්ථ දැක්වෙන්නේ:

  • min (x 1 , x 2 , ..., x n ) , සියලු x i දැඩි ලෙස ධනාත්මක නම්
  • උපරිම (x 1 , x 2 , ..., x n ) , සියලු x i දැඩි ලෙස .ණ නම්
  • 0 , වෙනත් ආකාරයකින්.

දිග 18 ස්නිපටය:

l'[,65>Dm>_el+_$er

ROT13 එන්කෝඩරයක්. a-zA-Zආදාන නූලෙන් අක්ෂර පමණක් STDIN හරහා මාරු කරයි

දිග 15 ස්නිපටය:

T1{_2$+}ri2-*]p

STDIN හරහා ආදානයක් ලෙස සපයනු ලබන Nෆිබොනාච්චි ශ්‍රේණියේ පළමු අංක මුද්‍රණය කිරීමේ සම්පූර්ණ වැඩසටහනකි N.

දිග 12 ස්නිපටය:

{{_@\%}h;}:G

සරල GCD ශ්‍රිතයක්. 2706 410 GGCD තොගය මත ලබා ගැනීමට මෙය භාවිතා කළ හැකිය .

දිග 11 ස්නිපටය:

123456 789#

#බල ක්‍රියාකරු වේ. මෙම ස්නිපටය CJam හි සිසිල් අංගයක් පෙන්වන අතර එය සියලු ගණිතමය මෙහෙයුම් සඳහා බිග්ඉන්ට්ස් සඳහා සහය දක්වයි. එබැවින් ඉහත කේතයේ ප්‍රතිදානය වේ

1596346205622537943703716803040694151242100030904924074732295184521676912291137885341977590649991707684635184329980991487148618486236239062505001539322685142817506810040361209550544146292158784625519911512640361780862459268161619223326802388689703997604303632605734938879647069477372395799326590488746599202521617640394227957532720581758771344616555153473551874187964029973716015080326283503474062024803237072761129557356772954771383125420283743787215768524095651476398918270831514362626616089349128838080859262141293069421199363839940462244772673481244848208112002212957221705577938865719802035511067875502253218277834350725436729497351901219311577128600087062378434520948898301738545267825952998284599001356281260973911216650526574435975050678439968995805415462116669892745933523276658479456263859786003695570642598885206779863730608803831608206418317758451327165760242416052588688579435998154295782751455020445483571514197850814391880423853968520336337963918534259580183058727377932419280412466915889059399591196961188841001024998633317094826403760131868252088477018937989608302521450181593409274231460335072324865982559395114735391976545471553525054490202974741119144469523879456646833238659929705233941114530149037245274032070536718197592615630616792756562341411027203615235147973615347081993563361626845258162606172599728677944001956482301240050182368840648532697569098833480384074404562991348377266778603059081932412368912313845464302833428950934701568958836851009236647605585910687215977468114323293396641238344799575626940766355697576957869656153567798618227770961980620119004224798449940378878601283741944503399682599666873704888519152796472231721010884561046439019823540214190109829183178504573391524533915085342799888899681052113605127068137552531204917650779012455136663716975904242872042805633443567570913936237754642040107392687168596924804730637819953463737212774674563401663682370631910559669378413063684132477269578881395521544729393136204246705936061735379354437327940116154383441927197123218522827575163913310005036963663583344508839784971260123709283218409462028161021477446586507813599051643059982983426688872855309396405653159417356549291603532443699350168178837164682957610433456205211423600319694496115159970718912091395232327389520091646132878609779171226748990343349416763319432268713023302555895744813731889452605219001900815755497209921418814092923394321459962373890912709775151652200071533644718727513889263907829300496554849544461628702471995210369421320165755673222520834013956492183306187393652197405863508709529644837118590847002900783148394313160749018413291215958936871830666201928218294362550829287373305552379418641499562597137520153409556227576809855521876196531587454478159211299517511047868125975115347272184123454929507976958328038242400918390689757262398695703472270927183494613959476164389143107240083171566284628032072645081703351075328092783401422849512230275075331561337345714881104575020436358133210849231625973013523497330004645467493618279226202227586584610761439335895760888873155403816627190368675397978355381544497413492223577022267403347927237298551052219150516984577176643706356698282552857754120841266435149587248192704898338826251727748499150285409036076919533685800933215325289882260771526293167171975367192287689881199864600661035143522211647660445960687046757311913589429739868592726372013684511683081229044622752191694278221303073075505531920922815724661725685493922212700535444400760813940151761980008355835574184921854364539924999643954874549857103642483664109073938527328920827803218865362851320233433429604394590974694396314165313743853607609394553133883545319222169958204731303672940856293527174545435349105954532301106962634516087237739490953930886293289854731305112253177512851251930821765454042415085420000484369355605183062368648992392499663861508991984554431113080399485470268940148600970493633737364443822752829774334511729579419931500217970224646496435527826186627011323464848141074486509849545954714213290443775688291020289759390171236344528896

දිග 10 ස්නිපටය:

"`%W_"_W%`

අපි දැනටමත් ක්වයින් කර ඇත, එය ආපසු හැරවීමට ඉඩ දෙන්න! මෙය CJam හි කෙටිම ප්‍රතිලෝම ක්වයින් එකකි. ප්‍රතිලෝම ක්වයින් යනු එහි ප්‍රභව කේතය ප්‍රතිලෝම අනුපිළිවෙලින් මුද්‍රණය කරන ක්වයින් ය.

දිග 9 ස්නිපටය:

5,K,+_&S*

මෙම ස්නිපටයේ CJam හි බොහෝ අංග පෙන්වයි,

5, "create an array of numbers 0 to 4"
K, "create an array of numbers 0 to 19"
+  "List concatination"
_  "Duplicate top stack element"
&  "Set distinct operator in this case"
S* "Join array elements with space character"

දිග 8 ස්නිපටය:

"`_~"`_~

සී. ජේම් හි ඇති විය හැකි කුඩාම ක්වයින් වලින් එකක්. මෙය සත්‍ය කේතයක් වන අතර එය සත්‍ය වශයෙන්ම ප්‍රභව කේතය කිසිදු ආකාරයකින් කියවන්නේ නැත. (ප්‍රභව කේතය කියවීම CJam හි පවා කළ නොහැක)

දිග 7 ස්නිපටය:

"AB"_m*

m*ඉහළම කොටස් දෙකේ සියලුම කාටිසියානු නිෂ්පාදන නිර්මාණය කරයි. නිදසුනක් ලෙස, ඉහත කේතය ["AA" "AB" "BA" "BB"]සිරස් අතට තබනු ඇත, එය කාටේෂියානු නිෂ්පාදනයක් වන "AB"සහ "AB".

දිග 6 ස්නිපටය:

"_~"_~

ලස්සන පෙනුමක් ඇති නැවත නැවත කේතයක්. මෙය ක්‍රියාත්මක නොකරන්න :). මෙම කේතය නිරූපණය කිරීම CJam හි සරලම ක්වීන් සඳහා පදනම වේ. ඔබ නූල් "_~"සිරස් අතට තබා , පිටපතක් සාදා _එය ඇගයීමට ලක් කරන්න. ඔබ උපරිම පුනරාවර්තන ව්‍යතිරේකය කරා ළඟා වන තුරු එකම දේ නැවත නැවතත් (නැවත නැවතත්) කරයි.

දිග 5 ස්නිපටය:

{A}:F

CJam හි මූලික ශ්‍රිතයක් ක්‍රියා කරන ආකාරය මෙයයි, ඉහත ප්‍රකාශනය කේත වාරණය {A}විචල්‍යයට පවරයි F. දැන් ඔබේ කේතයේ, Fකේත වාරණය ක්‍රියාත්මක කිරීම සඳහා ඔබට ඕනෑම තැනක තැබිය හැකිය (සහ 10මෙම අවස්ථාවෙහිදී)

දිග 4 ස්නිපටය:

"A"~

ඔබට ඕනෑම කේත වාරණයක් හෝ නූලක් හෝ තනි අක්ෂරයක් භාවිතා කර ඇගයීමට ලක් කළ හැකිය ~. ඉහත ප්‍රකාශනයේ ප්‍රති results ලය10

දිග 3 ස්නිපටය:

Kmr

සාමාන්‍ය අහඹු සංඛ්‍යා උත්පාදක යන්ත්රය 0 සිට K20 දක්වා පරාසයක පවතී .

දිග 2 ස්නිපටය:

es

මෙය වත්මන් කාලරාමුව ලබා දෙයි (යුගයේ සිට මිලි තත්පර). CJam හට etදේශීය වේලාවට වඩාත් භාවිතා කළ හැකි ආකෘතියකින් යුක්ත වන අතර එමඟින් වර්තමාන වේලාවේ විවිධ කොටස් (දවස, පැය යනාදිය) ඇතුළත් වේ.

දිග 1 ස්නිපටය:

A

CJam හි සෑම ප්‍රාග්ධන හෝඩියක්ම පාහේ පූර්ව නිශ්චිත විචල්‍යයන් ලෙස ඇත. A, 10 වන B11 වන අතර, දක්වා K20. වේ Pවේ pi (3.141592653589793), Nනව මාර්ගය හා වන තවත් බොහෝ අය . ඔබට විචල්‍යයන්හි ආරම්භක අගයන් අවශ්‍ය වූ විට හෝ බයිට් 1 කින් ඉලක්කම් දෙකක් අවශ්‍ය වූ විට පවා මේවා ඉතා ප්‍රයෝජනවත් වේ.

ෆැක්ටොයිඩ්

CJam ගොල්ෆ් ස්ක්‍රිප්ට් වෙතින් ආනුභාව ලත් නමුත් ජාලයක් සඳහා සහාය ඇතුළුව එහි විශේෂාංග රාශියක් ගොඩනංවයි GET ඇමතුම: D

PS: සෑම උත්ශ්‍රේණිගත කිරීම් 5 කට වරක් හෝ සෑම පැය 2 කට වරක්ම පිළිතුර යාවත්කාලීන කිරීමට මම උත්සාහ කරමි.


ඔබේ ROT13 උදාහරණය සමඟ ගැටළු කිහිපයක් තිබේ: p නමුත් මම
ක්වයින්

itaditsu ප්‍රශ්නය කුමක්ද?
ප්‍රශස්තකරණය

එය nz අක්ෂරවල සිද්ධිය වෙනස් කරයි. එසේම, එයට @ කිසිදු හේතුවක් නොමැතිව ඇත, ඔබට ඒ වෙනුවට ඩී එහි තැබිය හැකිය.
aditsu ඉවත්ව ගියේ SE EVIL

itaditsu ඉතා විශ්වාසයි එහි ROT 13 a-zA-Z පරාසය හරහා වන අතර එය සිද්ධි වෙනස් වීමට හේතුවයි. ඔබට එය කියවිය නොහැකිද? එහි ඔබේම භාෂාව: P cha අක්ෂර 18 ක් සඳහා මා අනුමාන කරයි: D
Optimizer

ROT13 සාමාන්‍යයෙන් කරන්නේ එය නොවේ. මට මගේම භාෂාව කියවිය හැකිදැයි ඔබ අසන්නේ මන්දැයි මට තේරෙන්නේ නැත, ගැටළුව වන්නේ වැඩසටහන කරන්නේ කුමක්ද යන්න තේරුම් ගැනීම නොව, එය අපේක්ෂා කළ දේ නොකරන නිසාය.
aditsu ඉවත්ව ගියේ SE EVIL

34

පොදු ලිප්

Lisp (LISt Processing වෙතින්) අදටත් භාවිතයේ ඇති පැරණිතම භාෂාවකි (FORTRAN පමණක් පැරණි). කේතය දත්ත සහ දත්ත කේත වන පළමු භාෂාව වීම සැලකිය යුතු ය; සමජාතීයතාව ලෙස හැඳින්වේ. කසළ එකතු කළ පළමු භාෂාව ද එය විය. මුලින් ම න්‍යායාත්මක භාෂාවක් ලෙස 1958 දී ජෝන් මැකාති විසින් නිර්මාණය කරන ලද එය සැබෑ භාෂාවක් බවට පත්වූයේ ස්ටීව් රසල් විසින් පරිගණකයෙන් එවාල් ශ්‍රිතය ක්‍රියාත්මක කළ හැකි බව වටහා ගත් විට ය. එය කෘතිම බුද්ධිය තුළ වඩාත් ප්‍රචලිත වන අතර වරහන් වර්‍ගවල පෙර සූදානමෙන් ක්ෂණිකව හඳුනාගත හැකිය. පොදු ලිස්ප් නිර්මාණය කර ඇත්තේ පැරණි ලිස්ප් උපභාෂා වඩාත් ප්‍රමිතිගත ස්වරූපයකට ඒකාබද්ධ කිරීම සඳහා ය.

සෑම ස්නිපටයක්ම තනිවම ධාවනය කරවීමට මම උත්සාහ කරමි. මීට අමතරව, මම පොදු ලිප්ස් භාවිතා කරන නිසා, මූලික සංකල්ප සහ බොහෝ වාක්‍ය ඛණ්ඩ වෙනත් උපභාෂාවලට අදාළ වේ, නමුත් සමහර කාර්යයන් යෝජනා ක්‍රමයේ ක්‍රියාත්මක නොවේ.

දිග 1

*

කේතීකරණය සඳහා එස්-ප්‍රකාශන සහ ලැයිස්තු භාවිතා කිරීම අවධාරණය කර ඇති නිසා, පරමාණු යනුවෙන් හැඳින්වෙන වරහන් නොමැති අඩංගු ලිස්ප් වල වලංගු ප්‍රකාශන ඉතා ස්වල්පයක් ඇත. REPL (read-eval-print loop) වෙත කෙලින්ම ටයිප් කරන ඕනෑම දෙයක් විචල්‍යයක් ලෙස සලකනු ලබන අතර එය ඇගයීමට ලක් කෙරේ. *REPL විසින් මුද්‍රණය කරන ලද පෙර අගය දරයි.

දිග 2

()

මෙය හිස් ලැයිස්තුවකි, ලිස්ප් හි වැදගත්ම සංකේතයකි. Lisp හි ඇති සෑම නිසි ලැයිස්තුවක්ම හිස් ලැයිස්තුවකින් අවසන් වේ \0.

දිග 3

(*)

මෙය මූලික ශ්‍රිත ඇමතුමකි, එය වරහන් තුළ ඔතා ඇති සංකේතයකින් සමන්විත වේ. ලිස්ප් හි ක්‍රියාකරුවන් නොමැත, ඒවා ද ක්‍රියාකාරී වේ. මම විශේෂයෙන් ගුණ කිරීම තෝරාගත්තේ එය ඇත්ත වශයෙන්ම ද්විමය ශ්‍රිතයක් නොවන බැවිනි; Lisp හි ගුණ කිරීමේ ක්‍රියාකරු අවිනිශ්චිත තර්ක ගණනක් ගනී. එයට කිසිදු තර්කයක් ලබා නොදුනහොත් එය නැවත පැමිණේ 1, ගුණ කිරීම සඳහා අනන්‍යතා ක්‍රියාකරු.

දිග 4

`(1)

මෙය අවාසි කොටුවක් වන අතර එය මූලද්‍රව්‍ය යුගලයක් යැයි පැවසීමේ තවත් ක්‍රමයකි. ලිස්ප් හි, සෑම ලැයිස්තුවක්ම අවාසි සෛල හා සම්බන්ධ වූ සෛල වලින් සමන්විත වන අතර එහිදී පළමු මූලද්‍රව්‍යය (the car) අගය වන අතර දෙවන මූලද්‍රව්‍යය (the cdr) ඊළඟ අවාසි සෛලයට යොමු කරයි. සම්බන්ධිත ලැයිස්තු මත පදනම්ව ලිස්ප්හි පදනම මෙයයි. මෙම විශේෂිත අවාසි කොටුව 1මෝටර් රථය ලෙසත් හිස් ලැයිස්තුව එහි සීඩීආර් ලෙසත් ඇත.

දිග 7

(not t)

මට Lisp හි සත්‍ය අගයන් ස්පර්ශ කිරීමට අවශ්‍යයි. මෙය නැවත පැමිණේ nil. පොදු ළිස්ප් දී, tසැබෑ අතර සඳහා සංකේතය වන nilහා ()බොරු නියෝජනය කරන අතර එකිනෙකටත් සමාන වන නමුත්, මෙම අර්ථ දැක්වීම සියලු ළිස්ප් උපභාෂා සඳහා සම්මත නොවන බව සටහන්; නිදසුනක් ලෙස, යෝජනා ක්‍රමය #fඅසත්‍ය සහ '()හිස් ලැයිස්තුව අතර වෙනස හඳුනා ගනී .

දිග 9

(cdr ())

මා කලින් කී පරිදි, සීඩීආර් යනු ලැයිස්තුවක වලිග මූලද්‍රව්‍යය වන අතර එය ඔබට ශ්‍රිතය සමඟ ලබා ගත හැකිය cdr. ඒ හා සමානව, ඔබට ශ්රිතය සමඟ ප්රධාන අංගය, මෝටර් රථය ලබා ගත හැකිය car. හරිම සරලයි නේද? හිස් ලැයිස්තුවේ මෝටර් රථය සහ සීඩීආර් දෙකම nilවේ.

දිග 10

(cons 1 2)

අවසාන වශයෙන්, ලැයිස්තු සමඟ වැඩ කිරීම ආරම්භ කිරීමට ප්‍රමාණවත් දිග. consපළමු පරාමිතිය මෝටර් රථය ලෙසත් දෙවැන්න සීඩීආර් ලෙසත් සංයුක්ත කොටුවක් සාදයි. නමුත් මුද්‍රණය කරනවා වෙනුවට (1 2)එය ලබා දෙයි (1 . 2). දිග 2 ස්නිපටයට ආපසු යාම, නිසි ලැයිස්තුවක් හිස් ලැයිස්තුවෙන් අවසන් විය යුතු බැවින් අවසාන අන්තරා කොටුවේ සීඩීආර් හිස් ලැයිස්තුවට යොමු විය යුතුය. මෙම අවස්ථාවෙහිදී, අන්තිම අන්තරා කොටුව පෙන්වා දෙන්නේ 2, එබැවින් අප සතුව නුසුදුසු ලැයිස්තුවක් ඇති බව ලිස්ප් අපට දන්වයි, නමුත් ඔබට එය නොමැතිව සී-ස්ට්‍රිං එකක් සාදා ගත හැකි ආකාරය වැනි එය කිරීමට අපට තවමත් ඉඩ දෙයි \0.

දිග 11

(cons 1 ())

දැන් අපි නිසි ලෙස සකස් කරන ලද අපගේ පළමු ලැයිස්තුව නිර්මාණය කර ඇත්තෙමු. එය කාර් 1සහ සීඩීආර් සහිත තනි කොන්ස් සෛලයකි (). අනෙක් සෑම ලැයිස්තුවක් සඳහාම මම එය පසුගාමී / ටික් එකකින් මෙහෙයවන බව ඔබට පෙනෙනු ඇත; වෙනත් ඕනෑම නිසි ලැයිස්තුවක් එහි පළමු තර්කය පරාමිතීන් ලෙස ඉතිරි මූලද්‍රව්‍ය සමඟ ශ්‍රිතයක් ලෙස ඇගයීමට උත්සාහ කරයි. නිශ්චිතවම කිවහොත්, ()ලැයිස්තුවක් නොවේ; එය හිස් ලැයිස්තුවක් නියෝජනය කරන a (සහ a වලින් සමන්විත සංකේතයකි ). සංකේත නාමයකින් මුද්‍රණය කළ හැකි ඕනෑම අක්ෂරයක් පාහේ භාවිතා කිරීමට ලිස්ප් ඔබට ඉඩ සලසයි. ඔබට අවශ්‍ය පරිදි ඕනෑම සංකේතයක් නැවත අර්ථ දැක්වීමට ඔබට ඉඩ සලසයි.

දිග 12

(cdr `(1 2))

මෙය ප්‍රතිදානය වනු ඇත (2), 2සමහර අය අනුමාන කරන පරිදි නොවේ. මතක තබා ගන්න, සෑම සීඩීආර් එකක්ම වෙනත් අවාසි කෝෂයකට හෝ හිස් ලැයිස්තුවකට යොමු කළ යුතුය; පැහැදිලිවම 2හිස් ලැයිස්තුව නොවේ, එබැවින් එය මෝටර් රථයේ 2සීඩීආර් සහ තවත් සීඩීආර් සෛලයක් විය යුතුය ().

දිග 13

'#1=(1 . #1#)

මෙය තනි වටිනාකමක් සහිත රවුම් ලැයිස්තුවක් නිපදවනු ඇත 1. මුද්‍රණය කළ හොත් එය “(1 1 1 1 ...” සදහටම මුද්‍රණය කරනු ඇත, එවිට එය ප්‍රායෝගිකව අසීමිත ලැයිස්තුවක් ලෙස සැලකිය හැකිය (ඔබට cdrඅසීමිත වාර ගණනක් කළ හැකිය සෑම විටම එකම ප්‍රති result ලය ලබා Tගැනීමට !). යමෙකු ගෝලීය විචල්‍යයට අනුයුක්ත නොකරන්නේ නම් *print-circle*, එය මුද්‍රණය කරනු ලැබේ #1=(1 . #1#).


අන්තිම සංස්කරණය! ඉක්මන්, යමෙක් බීට්ල්ස් තේමාවෙන් යුත් esolang එකක් සාදයි: D
fede s.

1
edededes. ජෝන් මැකාති, පෝල් මැකාර්ට්නි ... භාෂාව කාර්තිකාට්නි ලෙස හැඳින්විය යුතුය.
පූසා

33

GNU Make

මම මේ පැත්තෙන් කකුලෙන් එළියට යන්නම්. මම හිතන්නේ මෙය makePPCG හි දර්ශනය වූ පළමු අවස්ථාව විය හැකිය.

ෆැක්ටොයිඩ්

සාදන්න ක්‍රියාකාරී භාෂාවක් ලෙස සැලකිය හැකිය.

දිග 0 ස්නිපටය

දිග 0 ස්නිපෙට් අවශ්‍ය යැයි මම නොසිතමි, නමුත් මෙහි කෙසේ හෝ එකක් තිබේ. සියලුම දිග 0 වැඩසටහන් වලින් මෙය වඩාත් ප්‍රයෝජනවත් විය හැකි යැයි මම සිතමි. හිස් Makefile සමඟ (හෝ කිසිසේත් makefile නැත), සාදන්න තවමත් ගොඩනගා ඇති නීති සමූහයක් ඇත. උදා: .c ගොනුව .o හෝ ද්විමය ලෙස සම්පාදනය කිරීම සඳහා පෙරනිමි බිල්ට් රීති ඇත, .c ගොනුව වත්මන් නාමාවලියෙහි පවතී. එබැවින් අප එසේ කරන්නේ නම්:

make hello.o

සාදන්න .c සිට .o රීතිය සොයාගෙන hello.o ලබා දීමට hello.c සම්පාදනය කරයි

ඒ හා සමානව අප එසේ කරන්නේ නම්:

make goodbye

වත්මන් නාමාවලියෙහි goodbye.c ගොනුවක් තිබේ නම් එය සමුගැනීමේ ද්විමය වෙත සම්පාදනය කෙරේ.

දිග 1 ස්නිපටය

TAB

ඔව්, TAB චරිතය. මෙය තනිවම බොහෝ දේ නොකරන අතර, එය Make හි විශාල වැදගත්කමක් දරයි. රීතියක ඉලක්ක අර්ථ දැක්වීමක් අනුගමනය කරන සියලුම වට්ටෝරු රේඛා ටැබ් එකකින් ආරම්භ කළ යුතුය. TAB සහ අවකාශයන් මිශ්‍ර වූ විට මේක්ෆයිල් නිදොස් කිරීමේදී මෙය සියලු ආකාරයේ කලකිරීම් ඇති කරයි.

දිග 2 ස්නිපටය

$@

මෙය වට්ටෝරු වල භාවිතය සඳහා ස්වයංක්‍රීය විචල්‍යයකි. එය රීතියේ ඉලක්කයේ ගොනු නාමය දක්වා පුළුල් වේ. ඇත වෙනත් ප්රයෝජනවත් ස්වයංක්රීය විචල්යයන් .

දිග 3 ස්නිපෙට්

a:=

කෙටිම සරලව පුළුල් කළ විචල්‍ය පැවරුම. Makefile පළමු වරට විග්‍රහ කළ විගස a විචල්‍යය "" ලෙස සකසා ඇත. ඒ වෙනුවට අප එසේ කරන්නේ a=නම්, පැවරුම පුනරාවර්තන ලෙස පුළුල් වේ, එනම් විචල්‍යය සැබවින්ම යොමු වන කාලය දක්වා ප්‍රසාරණය කල් දමනු ලැබේ.

දිග 4 ස්නිපෙට්

W:;w

කෙටිම ආන්තික ප්‍රයෝජනවත් සම්පූර්ණ රීති පිරිවිතර. මෙය Wහුදෙක් wෂෙල් විධානය ක්‍රියාත්මක කරන රීතියක් සහිත ඉලක්කයක් අර්ථ දක්වයි . මේ අනුව

make W

සමාන වේ:

w

මෙය විකල්ප රීති වාක්‍ය ඛණ්ඩයක් වන අතර වට්ටෝරුව නව රේඛාවකින් වෙන් කරන ලද එකම රේඛාවේ ඉලක්කය අනුගමනය කරයි. වඩාත් සුලභව වට්ටෝරු රේඛා වහාම වෙනම ඉලක්ක රේඛාවක් අනුගමනය කරයි, TABඅක්ෂර එක් එක් වට්ටෝරු රේඛාව ආරම්භ කරයි.

දිග 5 ස්නිපෙට්

$(@D)

තවත් ස්වයංක්‍රීය විචල්‍යයකි. සමාන $@, නමුත් මෙය ගොනුවේ නම සහ පසුපස / ඉවත් කිරීමෙන් මාර්ගයේ නාමාවලි කොටස දක්වා විහිදේ.


සමහර සංගීත කාර්යයන් සමහර විට $(basename )හෝ $(patsubst )? ( උදා. )
ලුසර් ඩ්‍රෝග්

32

මාබෙලස්

දිග 14 ස්නිපටය

}0}1
Mulx
HxHx

මෙම ස්නිපටය තවත් මාර්බලස් පුස්තකාල කිහිපයක් පෙන්වන අතර නව සංකල්පයක් හඳුන්වා දෙයි, එනම් බහු සෛල පුවරු. මෙම Mulxමණ්ඩලය ආදාන ලෙස පිති දෙකක් ගත වන අතර 2 පිති ප්රතිදානයනට. Mulxකැමැත්තෙහි වම්පස කොටුවට ඇතුළු වන කිරිගරු bles එම }0පුවරුවේ ඇති උපාංගවලට සහ දකුණු කෙළවරේ කොටුවට අනුරූප වේ }1. සමානුපාතිකව, ප්‍රතිදානයන් විවිධ සෛල වලින් පිටතට පැමිණේ. MAX(1, highest output device + 1, highest input device + 1)ආදාන උපාංගයකට අනුරූප නොවන සෛල ඒවා මතට ​​වැටෙන ඕනෑම කිරිගරු ble ක් කුණු කූඩයට දමනු ඇති බැවින් පුවරුවක පළල ගණනය කළ හැකිය .

දිග 13 ස්නිපටය

7E
??
>Y!!
{0

මෙය එක් එක් ටික් එක මත අහඹු ලෙස මුද්‍රණය කළ හැකි ascii අක්ෂරයක් කෙළ ගසන පුවරුවකි. සසම්භාවී අගයන් ජනනය කිරීමේ ක්‍රම දෙකක් Marbelous සතුව ඇත. නැත ??0 අතර අහඹු වටිනාකම සහ එය ලැබෙන ආදාන කිරිගරුඬ, සහභාගීත්ව සහ නැවත ඇති ?n: ?0දක්වා ?Zපිළිවෙළින්. කුමන ක්‍රියාවට බෙහෙවින් සමාන ය ??. !!සියලුම ප්‍රතිදානයන් පුරවා නොතිබුණද මණ්ඩලය අවසන් කරන දේ අප සතුව ඇත. ?nමාබෙලස් භාවිතයෙන් පුවරු ලෙස උපාංග ක්‍රියාත්මක කරන්නේ කෙසේදැයි ඔබට සිතාගත හැකිද ???

දිග 12 ස්නිපටය

}0}1
Fb//
Dp

මාර්බලස්ගේ පුස්තකාල ක්‍රියාකාරකම් කිහිපයක් මෙහිදී අපට දැකගත හැකිය. Fbn ආදාන කිරිගරු is වන n වන ෆයිබොනාච්චි අංකය ප්‍රතිදානය කරයි. Dpආදාන කිරිගරු ST ය STDOUT වෙත දශම සංඛ්‍යාවක් ලෙස මුද්‍රණය කරයි. මේ දෙකම මාර්බෙලස් හි ක්‍රියාත්මක කර ඇති අතර, ඔබ සබැඳි පරිවර්ථකයේ පුස්තකාල ඇතුළත් කර ඇත්දැයි විමසා බැලිය හැකිය , පයිතන් පරිවර්තකය සඳහා, ඔබ සෑම ගොනුවක්ම පැහැදිලිව ඇතුළත් කළ යුතුය. මෙම පුවරු inplementation සොයා ගත හැකි github මත . මෙම විශේෂිත වැඩසටහනට යෙදවුම් 2 ක් ගත වන අතර එය දෙවරක් ෆිබොනාච්චි පුවරුව අමතනු ඇති බව සලකන්න. කැඳවන ලද පුවරු, ඒවා හැඳින්වූ පුවරුවේ එක් ටික් එකක් තුළ නැවත පැමිණේ.

දිග 11 ස්නිපටය

}0}0
{<{0{>

මේකට යම් පැහැදිලි කිරීමක් අවශ්‍යයි. මෙම }0උපාංගයන් ඔවුන් එම සංඛ්යාව (0) ඇති බැවින්, ඔවුන් මෙම පුවරුව ලෙස ලක්වුනාම එම අගය අඩංගු වනු ඇත, imputs වේ. පහළ පේළියේ ඇති උපාංග තුන ප්‍රතිදාන වේ. {<පුවරුවේ වමට {0ප්‍රතිදානය , පුවරුවේ පළමු කොටුවට යටින් {>ප්‍රතිදානය සහ දකුණට ප්‍රතිදානය. ප්‍රතිදානය තල්ලු කරනු ලබන්නේ සියලු වෙනස් නිමැවුම් උපාංග පිරවූ විට පමණි. කෙසේ වෙතත්, මෙම අවස්ථාවේදී, නිවැරදි ප්‍රතිදාන උපාංගය කිසි විටෙකත් ළඟා නොවේ. ක්‍රියාකාරීත්වයේ lack නතාවය හේතුවෙන් මණ්ඩලය ඉවත්ව යන අතර කෙසේ හෝ එහි ඇති අගයන් දෙක ප්‍රතිදානය කරයි. /\මාබලස් මණ්ඩලයක් ලෙස යමෙකුට ක්‍රියාත්මක කළ හැක්කේ කෙසේදැයි ඔබට සිතාගත හැකිද ?

දිග 10 ස්නිපටය

..40
FF
\\

Marbelous හි වැදගත් කාර්යභාරයක් ඉටු කරන කරුණු කිහිපයක් මෙහි තිබේ. පළමුව, එකතු කිරීමක් තිබේ. පුවරුවේ ඇති කිරිගරු two දෙකේ මාර්ගය ඔබ සොයා ගන්නේ නම්, ඒවා එකම සෛලයක එකවර අවසන් වන බව ඔබට පෙනෙනු ඇත. මෙය සිදු වූ විට, ඔවුන් එකට එකතු වේ. (විනෝද ඇත්ත: යම් අවස්ථාවක දී එය එකට එකතු කර වෙනුවට, එම පිති තොගයක් පිහිටුවීමට යුතු බව සලකන ලදී) කෙසේ වෙතත්, Marbelous 8 බිට් භාෂාව, ඒ නිසා වෙත කිරිගරුඬ එකතු වේ FFඑය 1 අඩු සමාන වේ.

දිග 9 ස්නිපටය

00
\\/\]]

මාබෙලස් හි බළලුන්ගේ මුලික අනුවාදය ක්‍රියාත්මක කිරීමට ඇති කෙටිම ක්‍රමය මෙයයි. 00 \ / \ යනු සෑම තත්පරයකදීම උපාංගයේ 00වටිනා කිරිගරු ble ක් තබන ]]ලූපයකි. මෙය STDIN උපාංගයකි. කිරිගරු ble ක් මෙම උපාංගයට ගොඩ වූ විට, එය STDIN වෙතින් පළමු අක්‍ෂරය කියවීමට උත්සාහ කරයි, එකක් තිබේ නම්, එය පහළට තල්ලු වේ (මේ අවස්ථාවේ දී නැවත මුද්‍රණය වේ). එකක් නොමැති නම්, මුල් ඇම්බරය දකුණට තල්ලු වේ. (මෙම අවස්ථාවේදී කුණු කූඩයට දමා ඇත)

දිග 8 ස්නිපටය

}0
~~
{0

මෙම ස්නිපටය විශේෂාංග කිහිපයක් පෙන්වයි. පළමුව එය input 0 හරහා ආදානය ගනී. මෙම අවස්ථාවේදී මෙය ප්‍රධාන මණ්ඩලය වන අතර මෙය විධාන රේඛා ආදානය මගින් ප්‍රතිස්ථාපනය වේ. ඔබට මෙම ශ්‍රිතය ඇමතිය හැකිය, එවැනි අවස්ථාවකදී විධාන රේඛා ආදානය වෙනුවට තර්කය ගනු ලැබේ. එහෙනම් තියෙනවා ~~, ඒක ටිකක් ක්‍රියාකරු නොවේ. ඊට පසු, අපි වෙත යන්නෙමු }0, සියලු }nඋපාංග පුරවා ඇත්නම් , ශ්‍රිත ප්‍රතිලාභ අගයන් ලෙස මෙම අගයන් ආපසු ලබා දෙනු ලැබේ. (Marbelous එක් ශ්‍රිතයකට ප්‍රතිලාභ අගයකට වඩා වැඩි ගණනක් සඳහා සහාය දක්වයි)

දිග 7 ස්නිපටය

00
\\/\

Marbelous හි ඔබට නිර්මාණය කළ හැකි වඩාත්ම සංයුක්ත අනන්ත පුඩුවක් මෙයයි. මෙම \\උපාංගය, හරි ඕනෑම කිරිගරුඬ තල්ලු /\පිටපත් කිරිගරුඬ සහ වම් හා දකුණු පස තවත් එක් පිටපතක් අමතක විය හැකියි. පුවරුව පළල සෛල දෙකක් පමණක් බැවින් දකුණට කිරිගරු ble කුණු වී යයි.

දිග 6 ස්නිපටය

46MB75

පුනරාවර්තනය පිළිබඳ උදාහරණයක් මෙන්න, MB(ව්‍යංගයෙන් නම් කරන ලද ප්‍රධාන පුවරුව සෑම ටික් එකකටම කැඳවනු ලැබේ, නමුත් Fuඑක් එක් ඇමතුම මත STDOUT වෙත මුද්‍රණය කිරීමට පෙර නොවේ . (පහත දැක්වෙන FuFuFuFuFuFu...ප්‍රති ult ල : මෙය පැහැදිලිවම ඇමතුම පිරී ඉතිරී යයි.

දිග 5 ස්නිපටය

2A
++

සමහර ගණිතමය, වටිනාකම සහිත කිරිගරු 2Able පළමු ටික් මතට වැටෙන අතර එය ++සෛලය මත සොයා ගනී . මෙය ක්‍රියාකරුවෙකි. මෙම විශේෂිත ක්‍රියාකරු එය මතට වැටෙන ඕනෑම කිරිගරු ble ක් වැඩි කර එය බිමට වැටීමට ඉඩ දෙයි. කිරිගරු ble දැන් වටිනාකමක් ඇති 2Bඅතර එය පුවරුවෙන් වැටේ. මෙය +STDOUT වෙත මුද්‍රණය වේ.

දිග 4 ස්නිපටය

:
24

පරිවර්තකයන් දෙදෙනා මෙහි එකඟ නොවෙති, මම ගොනුවේ පළමු පුවරුවට මෙම උදාහරණයේ නමක් ලබා දී ඇත (නම හිස් නූලකි). පයිතන් පරිවර්තකය මෙය ප්‍රධාන පුවරුව යැයි උපකල්පනය කර වැඩසටහන ක්‍රියාත්මක කරන විට මෙම පුවරුව අමතයි (මුද්‍රණය කරන $). ජාවාස්ක්‍රිප්ට් පරිවර්ථකයාට ප්‍රධාන මණ්ඩලය සොයාගත නොහැකි අතර ඒ නිසා ප්‍රවේශ ස්ථානයක් නොමැත. Marbelous සඳහා පුස්තකාල ගොනුවක් ලිවීමේදී මෙය ප්‍රයෝජනවත් වේ.

දිග 3 ස්නිපටය

:Bo

මෙය නම් කරන ලද පුවරුවකි, ශරීරයක් නොමැති, Boඕනෑම පුවරුවක කොටුවක ලිවීමෙන් අපට මෙම පුවරුව අමතන්න (තමා ඇතුළුව Bo)

දිග 2 ස්නිපටය

3A

මෙම කේතය 1x1 සෛලයක සිරුරකි (සෑම සෛලයකම අක්ෂර දෙකක් පළල), ව්‍යංගයෙන් නම් කර ඇත MB(ප්‍රධාන පුවරුව සඳහා). 3Aකිරිගරු board පුවරුවෙන් ඉවතට වැටෙන විට එහි ෂඩාස්රාකාර අගයේ ascii අගය මුද්‍රණය කරයි . මෙම වැඩසටහනේ ප්‍රතිදානය පහත පරිදි වේ:

දිග 1 ස්නිපටය

:

මේ සමඟම #, මාර්බලස් වල ඇති එකම වලංගු 1 අක්‍ෂර වැඩසටහන් දෙකෙන් එකකි. #එය ඉතා රසවත් නොවන අදහස් දැක්වීමේ දර්ශකයකි. :ඔබ පුවරුවක් ප්‍රකාශ කිරීමට සූදානම් බව මාබල්වරුන්ට කියයි. ඔබ සැබවින්ම පුවරුව නම් කිරීම හෝ නිර්වචනය නොකිරීම ගැන දෙවරක් සම්පාදකයින් සැලකිලිමත් වන්නේ නැත. වැඩසටහන කිසිවක් නොකරයි.

factoid:

Marbelous මෙම වෙබ් අඩවිය, මිනිසුන් විසින් නිර්මාණය කරන ලදී, මේ භාෂාව සඳහා ධාවන සිටි සමහර නම් විය Rube හා සරලව ගොඩවායේ .


2
මට එයට පහර දෙන්න. ලස්සන ස්නිපෙට්!
ස්පාර්

ඔබේ දිග 12 ස්නිපටය යෙදවුම් දෙකක් ගන්නා බව පෙනේ, වෙනස් ෆයිබොනාච්චි අංක දෙකක් මුද්‍රණය කරන්න. එය චේතනාන්විතද?
ස්පාර්

P ස්පාර්, ඔව්, එය මාර්බෙලස් හි ක්‍රියාකාරිත්වය මඳක් ක්‍රියා කරන ආකාරය පෙන්වීමයි.
අධි ක්‍රියාකරු

සමහර විට එය පැහැදිලි කිරීම සඳහා එකතු කළ හැකිද? ඔබ ලියූ දෙයින්, මම බලාපොරොත්තු වන්නේ ස්නිපටය එක් ආදානයක් ගෙන එක් තන්තු අංකයක් ප්‍රතිදානය කරනු ඇති බවයි.
ස්පාර්

මම හිතන්නේ ඔබ ලකුණු 40 ක් ලබා ගනීවි, එවිට මගේ ෆයිබොනාච්චි ක්‍රියාකාරිත්වය ගැලපෙනු ඇත ...
ස්පාර්

31

ඉදිරියට

ෆෝර්ත් සතුව ඇත්තේ වර්ග දෙකක් පමණි, ඉන්ට්ස් සහ ෆ්ලෝට්ස් (සහ පාවෙන විකල්ප නොවේ!) නමුත් එය තවමත් අක්ෂර, නූල්, දිගු දිගු අඟල්, පොයින්ටර්ස්, ක්‍රියාකාරී දර්ශක, ව්‍යුහයන් සහ තවත් බොහෝ දේ ඇත. ඒ සියල්ල ඔබ එය භාවිතා කරන ආකාරයයි!

දිග 1

.

මෙම .විධානය (හෝ "වචනය" අපි එය අමතන්න වැනි), දත්ත අඩුක්කුව මත වන පූර්ණ අගයක් මුද්රණය කරයි; තොගය හිස් නම්, ඔබට ධාවන කාල දෝෂයක් ලැබේ. එය ද තොගයේ වටිනාකම ඉවත් කරයි - අපට එය තබා ගත හැකි ආකාරය බැලීමට ඉහළට!

දිග 2

.s

මෙම .sවචනය ඔවුන් ඕනෑම ඉවත් තොරව, මේ වන විට අඩුක්කුව මත වටිනාකම් දක්වනු ඇත. එය මුළු අගයන් ගණන ද පෙන්වයි. Gforth හි, .sපෙරනිමියෙන් ඉහළම අගයන් 9 පෙන්වීමට පමණක් සීමා වේ; සමහර විට අපි තවත් පෙන්වන්නේ කෙසේදැයි සොයා බලමු ද?

දිග 3

see

වර්ගය seeයන වචනය ගේ මූල කේතය බලන්න ඕනෑම ෆෝට් වචනය විසින් අනුගමනය. බොහෝ ෆෝර්ත් වචන ෆෝර්ත් තුළම අර්ථ දක්වා ඇති අතර එකලස් කිරීමේදී අර්ථ දක්වා ඇත්තේ ප්‍රාථමික කිහිපයක් පමණි.

දිග 4

1 0=

ෆෝර්ත් යනු පෝස්ට්ෆික්ස් ක්‍රියාකරුවන් සමඟ ගොඩගැසී ඇති භාෂාවක් බව මා සඳහන් කළාද? ටයිප් කිරීම 1 0=තොගයට තල්ලු 1කර 0=වචනය ක්‍රියාත්මක කරයි , එමඟින් තොගයේ ඉහළ අගය මතු වන අතර trueඑය 0 ට සමාන නම් තල්ලු කරයි false. 0=සඳහා පහසු වචනයකි 0 =; එහි මෙන්, එය සමාන අයුරෙන් වචන කිහිපයක් පොදු වටිනාකමක් සඳහා + වචනය සංයෝග ඉතා 1+සහ 0<>. එපමණක් නොව, falseෆෝර්ත් හි 0 වන අතර ඕනෑම අස්ථිර අගයක් සත්‍ය වන අතර, සාදන ලද පරීක්ෂණ වචන trueසත්‍ය ප්‍රති results ල සඳහා නැවත පැමිණෙන අතර trueඑය සෑම අතින්ම ගමන් කරයි - එය සියලු බිටු කට්ටලවල වටිනාකමයි, එනම් , -1!

දිග 5

-1 u.

තොගයට තල්ලු කරන්න -1, ඉන්පසු එය ඉවත් කර අත්සන් නොකළ පූර්ණ සංඛ්‍යාවක් ලෙස මුද්‍රණය කරන්න. ඔබගේ ෆෝර්ත් අනුවාදයේ අත්සන් නොකළ int සඳහා උපරිම අගය ඉක්මනින් බැලීමට මෙය භාවිතා කළ හැකිය (නමුත් එය ස්වදේශීයව සහාය දක්වන උපරිම අනුකලනය නොවේ!). ඔබ අසන්නේ, "int එකක් මුද්‍රණය කළ යුත්තේ .කවදාද සහ කවදාද යන්න අපි දන්නේ කෙසේද u.?" පිළිතුර: .එය අත්සන් u.කළ විට , අත්සන් නොකළ විට. "මම අදහස් කළේ එය නොවේ," ඔබ කියනවා. "තොගයේ ඉහළින් ඇති අගය අත්සන් කළ විට සහ එය අත්සන් නොකළ විට අපි දැන ගන්නේ කෙසේද?" පිළිතුර: ඔබ තමයි ක්‍රමලේඛකයා - එය ඔබේ රැකියාව! තොගයේ ඇති සෑම නිඛිලයක්ම int, අත්සන් නොකළ int int*, a, a නියෝජනය කරන්නේ දැයි ඔබ දැනගත යුතුයchar*, ශ්‍රිත දර්ශකයක් හෝ වෙනත් දෙයක්, නැතිනම් ඔබේ නාසයේ භූතයන් ලැබේ. ෆෝර්ත් ඔබ වෙනුවෙන් ඒ ගැන සොයා බැලීමට යන්නේ නැත; මොකක්ද මේ, සී?

දිග 6

." Hi"

මුද්රණ Hi. ."ෆෝර්ත් වචනයකි (එය සියලු ෆෝර්ත් වචන මෙන් සුදු අවකාශය හෝ ඊඕඑෆ් අනුගමනය කළ යුතුය) එය ඊළඟ හරහා ආදාන ප්‍රවාහය කියවන "අතර ඒ අතර ඇති ඕනෑම බයිට් මුද්‍රණය කරයි. ඔබ එක් ඉඩකට වඩා වැඩි ගණනක් තැබුවහොත් .", වහාම ඇති ඉඩ හැර අනෙක් ."සියල්ල මුද්‍රණය කෙරේ. පැනීමේ අනුපිළිවෙලට සහය නොදක්වයි (එබැවින් ඔබට "එය සමඟ නූලක් මුද්‍රණය කළ නොහැක ."), නමුත් Gforth භාෂාවට එකතු කරයි .\", එමඟින් ඒවාට සහාය වේ.

දිග 7

: + - ;

ඔබ ෆෝර්ත් හි ඔබේම වචන නිර්වචනය කරන්නේ මහා බඩවැලක්, වචනයේ නම, ඔබේ වචනය ක්‍රියාත්මක කිරීමට අවශ්‍ය වචන සහ අර්ධ සළකුණක් ලිවීමෙනි. වචනයක් යනු හිස් අවකාශයේ නොවන අක්ෂරවල ඕනෑම අනුක්‍රමයක් විය හැකිය (වයිට්ස්පේස් යනු එක් වචනයක් අවසන් වන්නේ කොතැනින්ද සහ තවත් වචනයක් ආරම්භ වන්නේ කොතැනින්ද යන්න ෆෝර්ත් පවසන ආකාරය), විරාම ලකුණු පවා සහ ක්‍රියාකරුවන් පවා (ඒවා වචන පමණක් වන අතර). ඉහත ස්නිපටය අර්ථ දැක්වීම +සඳහා නැවත අර්ථ දක්වයි -, එබැවින් දැන් ඔබ එකතු කිරීමට උත්සාහ කරන සෑම විටම ඔබ ඒ වෙනුවට අඩු කරන්න. කලින් භාවිතා කරන ඕනෑම වචනයක් +බලපාන්නේ නැත, මන්ද ඒවා මුල් අර්ථ දැක්වීමට යොමු කරයි +.

සටහන: සමහර වචන පිටතින් කරනවාට වඩා වෙනත් වචනවල අර්ථ දැක්වීම් තුළ වෙනස් දේ කරයි, නමුත් පාලන ව්‍යුහයන් හැරුණු විට ඒවා සියල්ලම විචක්ෂණශීලී ය. බොහෝ වචන පිටත අර්ථ දැක්වීමක් තුළ එකම දේ කරයි, නමුත් සමහර විට එය පැහැදිලිව පෙනෙන්නට නැත - : show-see see see ;ඔබ සිතන දේ නොකරනු ඇත!

දිග 8

: 42 - ;

වචනයක් සුදු අවකාශයේ අනුක්‍රමයක් විය හැකි යැයි මා කී විට, මම අදහස් කළේ ඕනෑම අනුක්‍රමයක්. නැත, ෆෝර්ත්ට එක් එක් අංකයට වචනයක් නොමැත; ඉලක්කම් ටිකක් විශේෂයි. ෆෝර්ත්ට සුදු පැහැති නොවන අනුක්‍රමයක් හමු වූ විට, එය මුලින්ම දන්නේ එය දන්නා වචනයක්ද යන්නයි; එය එසේ නොවේ නම්, එය අංකයක් ලෙස විග්‍රහ කිරීමට උත්සාහ කරයි; එය අසමත් වුවහොත් පමණක් ඔබට දෝෂයක් ලැබෙනු ඇත. අංකයකට සමාන අක්ෂර වින්‍යාසය අර්ථ දැක්වීම යන්නෙන් අදහස් වන්නේ එම වචනය ලබා නොගෙන ඔබට එම අංකයේ අක්ෂර වින්‍යාසය කෙලින්ම ඇතුළත් කළ නොහැකි බවයි, නමුත් Gforth සහ වෙනත් විවිධ ෆෝර්ට්ස් ඔබට කෙසේ හෝ සංඛ්‍යා අක්ෂර වින්‍යාස කිරීමට විවිධ ක්‍රම ලබා දෙයි .

දිග 9

IF 1 THEN

අවසාන වශයෙන් , හුරුපුරුදු දෙයක්! නිසැකවම, මෙම කේතය එහි තර්කය 1සත්‍ය දැයි පරීක්ෂා කරන අතර, එසේ නම්, පසුව ඇති ඕනෑම දෙයක් ක්‍රියාත්මක කරයි THEN, හරිද? වැරදි. ක්‍රියාත්මක කිරීම කරා ළඟා වූ විට IF, තොගයේ මුදුනේ ඇති අගය ඉවත් වී ඇති අතර, එම අගය සත්‍ය නම් (එනම්, නොන්සෙරෝ), ක්‍රියාත්මක කිරීම ඇතුළත ඇති ඕනෑම දෙයක් සමඟ ඉදිරියට යන IF ... THENඅතර පසුව ඇති ඕනෑම දෙයක් THEN; අගය ශුන්‍ය නම්, අපි කෙලින්ම පසුපසට යමු THEN. සටහන (වෙනත් ෆෝට් වචන අනුව වන!) මේ වචන අභ්යන්තර ක්රියාත්මක ආකාරය නිසා බව, IFසහ THENවචනය අර්ථ දැක්වීම තුළ, නැති පමණක් භාවිතා කළ හැකි "අර්ථ නිරූපණය රාජ්ය" යනුවෙනි.

දිග 12

( x y -- y )

මෙය අදහස් දැක්වීමකි. එය සිදු වූ විගසම එය (ඊළඟ සිට ඊළඟට )යයි. (පරිවර්තකය තුළ, නව රේඛාවකට එය අවසන් කළ හැකිය.) මෙය ෆෝර්ත්ගේ වාක්‍ය ඛණ්ඩයට “ගොඩනගා නැත” (කිසිවක් තිබේද?); (යනු තවත් වචනයකි, ආදාන ප්‍රවාහයේ ඇති සියල්ල ඊළඟට ඉවතලයි ). . (xනිර්වචනය කර නැත. (අපගේ පාදයට වෙඩි තබා ගැනීමේ අපගේ අඛණ්ඩ ව්‍යාපාරයේ කොටසක් ලෙස අපට නැවත අර්ථ දැක්විය හැකිය .

කෙසේ වෙතත්, අදහස් දැක්වීමේ අන්තර්ගතය වඩාත් සිත්ගන්නා සුළුය. මෙම ප්‍රකාශය කිසියම් වචනයක් සඳහා තොග ආචරණය නියම කරයි; --ලැයිස්තුවේ වම්පස ඇති කොටස ඔබ වචනය ධාවනය කිරීමට පෙර තොගයේ ඉහළින් තිබිය යුතු දේ (ඉහළ දකුණේ), සහ දකුණු පසින් --විස්තර කරන්නේ තොගයේ ඉහළ කොටස පසුව පෙනෙන්නේ කෙසේද යන්නයි (නැවතත් , ඉහළ කෙළවරේ). පොදු සම්මුතිය නම්, ඔබ නිර්වචනය කරන ඕනෑම වචනයක මූලාශ්‍රයට එවැනි අදහසක් එක් කිරීම, : nameබිට් එකෙන් පසුවම වන අතර, ප්‍රමිතිය පවා අනුගමනය කරන ඒවායේ වර්ගය දැක්වීමට තොග මූලද්‍රව්‍ය නම් කිරීම පිළිබඳ ඉතා ප්‍රබල සම්මුතියක් ඇත.

අහඹු ලෙස, පෙන්වා ඇති සිරස් ආචරණය nipවචනය සඳහා වේ. අදහස් දැක්වීමෙන් පමණක් එය කරන්නේ කුමක්දැයි ඔබට පැවසිය හැකිය.

දිග 13

1 2 3 4 d+ d.

කලින් සඳහන් කළ පරිදි, ෆෝර්ත් අගය වර්ගයක් ඔබ එය භාවිතා කරන ආකාරය අනුව වේ - ඔබ අගයක් දර්ශකයක් ලෙස සලකන්නේ නම්, එය දර්ශකයක් වන අතර, එම අගය හොඳ දර්ශකයක් නොවේ නම් , එය එකක් ලෙස සැලකීම ඔබේ වරදකි. කෙසේ වෙතත්, ඔබ වටිනාකමක් ලෙස සලකන්නේ කුමන වර්ගයට වුවත්, එය සෑම විටම දත්ත ගබඩාවේ එක් කොටුවක් ගනී; ව්‍යතිරේකයන් ද්විත්ව සෛල හෝ ද්විත්ව නිරවද්‍යතා සංඛ්‍යා වේ. මේවා සංඛ්‍යාංකයේ අගයන් දෙකකින් නිරූපණය වන අතර එය සුපුරුදු පරිදි බිටු මෙන් දෙගුණයක් සමඟ ගණිතය සිදු කිරීමට ඔබට ඉඩ සලසයි. වඩා වැදගත් හෝ ඉහළ-බිට් සෛලය අඩු වැදගත් හෝ පහළ-බිට් එක මත තබා ඇත, එමඟින් 1 0ද්විත්ව සෛල නිරූපණය වන්නේ 1, සහ0 1ඔබගේ ෆෝර්ත්ගේ නිත්‍ය සෛල කොතරම් විශාලද යන්න මත පදනම්ව 2 ^ 32 හෝ 2 ^ 64 වේ. ස්වාභාවිකවම, ද්වි-සෛල අගයක් ලෙස සැලකීමට නම්, ද්වි-සෛල අගයන් මත පැහැදිලිවම ක්‍රියාත්මක වන වචන භාවිතා කළ යුතුය; මේවා සාමාන්‍යයෙන් යුක්තිසහගත d(හෝ udඅත්සන් නොකල) පසුව අනුරූප තනි සෛල වචනයේ නම වේ: d+එකතු කිරීම, d<සංසන්දනය කිරීම, d.මුද්‍රණය කිරීම යනාදිය


ෆෝර්ට් සඳහා +1. මම තවම කර නැති භාෂා සෙවීමට පටන් ගත්තා. දැනටමත් මෙහි දැකීම සතුටක්.
mbomb007

2
එසේම, ඔබ කවදා හෝ +1675 වෙත ළඟා වන්නේ නම්, ප්‍රතිදානය සඳහා මට ලස්සන ASCII රූපයක් තිබේ. : D
mbomb007

31

පයිත්

වැඩිදුර කොටස් සඳහා, මම ගොල්ෆ් අභියෝගයන්ට විසඳුම් සහ ගැටලුවට සබැඳියක් පළ කරමි.

දිග 17:

<ussC,cG\_GUQ*zQQ

nආදාන නූල සදහටම පුනරාවර්තනය කිරීමෙන් සෑදී ඇති අනන්ත අනුක්‍රමයේ පළමු අක්ෂර සොයා ගන්න , ඉන්පසු එහි අවධාරනය අනුක්‍රමය සමඟම පුරවා එය සදහටම පුනරාවර්තනය කරන්න.

හිස් තැන් පුරවන්න

දිග 14:

#QX=Qhf>FT.:Q2

අද්විතීය මූලද්‍රව්‍ය ලැයිස්තුවක් ලබා දී, අසල්වැසි මූලද්‍රව්‍ය යුගල මාරු කිරීමෙන් ලැයිස්තුව වර්ග කරන්න, සියලු අතරමැදි ප්‍රති .ල මුද්‍රණය කරන්න.

අංක සමූහයක් පිළිවෙලට නැවත සකස් කිරීම

දිග 13:

?hu]+HG_UQYQY

පහත ව්‍යුහය සාදන්න : [0, [1, [2, [3]]]].

ලැයිස්තු පරාසයේ මුල් පිටුව

දිග 12:

uxyG*HQjvz2Z

XOR ගුණ කිරීම.

XOR ගුණ කිරීම

දිග 11:

lfqSzST.:wz

පළමු වචනයේ උපස්ථර දෙවන වචනයේ ඇනග්‍රෑම් කොපමණ දැයි ගණන් කරන්න.

දෙමාපිය නූලක් තුළ ඇනග්‍රෑම් හඳුනා ගැනීම

දිග 9:

fqJjQT_J2

ආදානය පාලින්ඩ්‍රෝමය වන අවම පදනම සොයා ගන්න.

අඩුම පාදක පාලින්ඩ්‍රෝමය

දිග 5:

!%lQ1

ආදානය 2 හි බලයක් දැයි පරීක්ෂා කරන්න. ලොග් පදනම 2 ගන්න, ප්‍රති result ලය mod 1 ගන්න, සහ තාර්කික නොවේ.

+, - මෙහෙයුම් භාවිතා නොකර පූර්ණ සංඛ්‍යාවක් 2 ක බලයක් දැයි පරීක්ෂා කරන්න

දිග 4:

sjQ2

ආදානයේ පාදක 2 නිරූපණය එකතු කිරීමෙන් ආදානයේ මිටි බර ගණනය කරයි.

අත්සන් නොකළ 16 බිටු නිඛිල ගණන ගණනය කරන්න

දිග 3:

^G2

^ අනුක්‍රමය මත, int, පළමු තර්කයේ කාටිසියානු නිෂ්පාදනය n වාරයක් සමඟ ලබා දෙයි, මෙහි n යනු දෙවන තර්කයයි.

මේ අවස්ථාවේ දී, නිසා Gඑම අක්ෂර මාලාව ( abcdefghijklmnopqrstuvwxyz), ^G2සියලු 2 ලිපිය නූල් දෙන aaහරහා zz.

දිග 2:

lT

l, සාමාන්‍යයෙන් සේවය කරන අතර len(), ලොග් බේස් 2 ලෙසද භාවිතා කළ හැකිය T. විචල්‍යය ආරම්භ කර ඇති බැවින්10 , මෙම මුද්‍රණය 3.3219280948873626, ලොග් බේස් 2 හි 10.

දිග 1:

H

Hයනු පයිත් හි හිස් ශබ්දකෝෂය (හැෂ්-මේසය) වන අතර, පයිත්හි ශබ්දකෝෂයක් ලබා ගත හැකි එකම ක්‍රමය, භාවිතා කිරීමට කෙටි v(එවාල්) හෝ$ (පයිතන් වචනාර්ථයෙන්).

ෆැක්ටොයිඩ්:

පයිත්ට වචනානුසාරයෙන් හැර බහු අක්ෂර ව්‍යුහයන් නොමැත. එසේම, පයිත් මූලික වශයෙන් එකින් එක පයිතන් සම්පාදනය කරයි.


ඔබට ආරම්භ වන විධාන ලැබීමට පෙර ඔබේ ෆැක්ටෝයිඩ් එකතු කර .තිබේද?
කාන්දු වන කන්‍යා සොහොයුරිය

ELeakyNun ඔව් ..
isaacg
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.