Scala 2.8 එකතු කිරීමේ පුස්තකාලය “ඉතිහාසයේ දීර් est තම සියදිවි නසාගැනීමේ සටහන” පිළිබඳ සිද්ධියක්ද? [වසා ඇත]


874

2.8 නිකුතුවෙන් එළඹෙන ස්කලා එකතු කිරීමේ පුස්තකාල නැවත ක්‍රියාත්මක කිරීම දෙස බැලීමට මම දැන් පටන් ගතිමි . 2.7 සිට පුස්තකාලය ගැන හුරුපුරුදු අයට පුස්තකාලය භාවිත දෘෂ්ටි කෝණයෙන් සුළු වශයෙන් වෙනස් වී ඇති බව පෙනෙනු ඇත. උදාහරණයක් වශයෙන්...

> List("Paris", "London").map(_.length)
res0: List[Int] List(5, 6)

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

def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Repr, B, That]): That

එවැනි සරල ක්‍රියාකාරිත්වය සඳහා, මෙය භයානක අත්සනක් වන අතර එය තේරුම් ගැනීමට මා වෙහෙසෙන බව පෙනේ. ස්කලා ඊලඟ ජාවා (හෝ / සී / සී ++ / සී #) විය හැකි යැයි මම නොසිතමි - එහි නිර්මාපකයින් එය ඉලක්ක කර ගත්තේ එම වෙළඳපොළට බව මම විශ්වාස නොකරමි - නමුත් මම සිතන්නේ එය ස්කාලා බවට පත්වීම / නිසැකවම කළ හැකි බවය ඊළඟ රූබි හෝ පයිතන් (එනම් සැලකිය යුතු වාණිජ පරිශීලක පදනමක් ලබා ගැනීම සඳහා)

  • මෙය මිනිසුන් ස්කලා වෙත පැමිණීම වළක්වනු ඇත්ද?
  • කැපවූ ආචාර්ය උපාධිධාරීන්ට පමණක් තේරුම් ගත හැකි ශාස්ත්‍රීය සෙල්ලමක් ලෙස මෙය වාණිජ ලෝකයේ නරක නාමයක් ලබා දෙයිද? ඇත පොදුරාජ්ය මණ්ඩලීය විදුලි සංදේශ සංගමයේ ගේ සහ මෘදුකාංග ප්රධානීන් ලකුණු බය වෙන්න යන්නේ?
  • පුස්තකාලය නැවත සැලසුම් කිරීම සංවේදී අදහසක්ද?
  • ඔබ ස්කාලාව වාණිජමය වශයෙන් භාවිතා කරන්නේ නම්, ඔබ මේ ගැන කරදර වෙනවාද? ඔබ වහාම 2.8 දරුකමට හදා ගැනීමට සැලසුම් කර තිබේද?

ස්ටීව් යෙග් වරක් ස්කලාට පහර දුන්නේ (මගේ මතය අනුව වැරදියට) එහි අතිරික්ත වර්ගීකරණ පද්ධතිය ලෙස ඔහු දුටු දේ නිසාය. මෙම API සමඟ යමෙකු ක්ෂේත්‍ර දිනයක් FUD පතුරුවා හරිනු ඇතැයි මම කණගාටු වෙමි (ජොෂ් බ්ලොච් ජාවා වෙත වැසීම් එකතු කිරීමෙන් ජේසීපීයට බිය වූ ආකාරය හා සමානය ).

සටහන - BGGA වසා දැමීමේ යෝජනාව ප්‍රතික්ෂේප කිරීමට ජොෂුවා බ්ලොච් බලපෑම් කළ බව මා විශ්වාස කරන අතරම, මෙම යෝජනාව වැරැද්දක් නියෝජනය කරන බවට ඔහුගේ අවංක විශ්වාසයන් හැර වෙන කිසිම දෙයකට මම මෙය නොකියමි.


මගේ බිරිඳ සහ සෙසු සේවකයන් ඕනෑම දෙයක් වුවද මට කියන්නේ තබා, මම හිතන්නේ නැහැ, මම මෝඩයෙක් කියලා: මම ගණිතය හොඳ උපාධියක් ඇති ඔක්ස්ෆර්ඩ් විශ්ව විද්යාලයේ , සහ මම අවුරුදු 12 වසර හා වාණිජ වැඩසටහන් කර තියෙනවා Scala පමණ වසරක් (වාණිජමය වශයෙන් ද).

ගිනි අවුලුවන විෂය මාතෘකාව 1980 දශකයේ මුල් භාගයේ එක්සත් රාජධානියේ දේශපාලන පක්ෂයක ප්‍රතිපත්ති ප්‍රකාශනය පිළිබඳ උපුටා දැක්වීමකි . මෙම ප්‍රශ්නය ආත්මීය නමුත් එය අව්‍යාජ ප්‍රශ්නයකි, මම එය සීඩබ්ලිව් බවට පත් කර ඇත්තෙමි.


10
මෝඩකම යනු බිය, අවිනිශ්චිතතාවය සහ සැකය පමණි - මම සිතන්නේ ජොෂ් බ්ලොච්ගේ කතාවේ ස්වරය ඉතා පැහැදිලිව ප්‍රකාශ වන බව මම ද එකඟ වෙමි. එය හොඳින් තර්ක කර තර්කානුකූල ය. සංස්කරණයන් ඔබ දුටුවහොත් මම මුලින් මෝඩකම නොකළ මට
-ve

32
මාටින් ඔඩර්ස්කිගේ 2010 දින 2010 දින කථාවේදී
Binil Thomas

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

87
මෙම ප්‍රශ්නය “මාර්ටින් ඕඩර්ස්කි විසින් පරිමාණ උපයෝගීතාව නැවත ඇගයීමට ලක් කිරීමට සහ එහි ප්‍රලේඛන පද්ධතිය සැඟවුණු ආකාරයේ පද්ධති තොරතුරු බවට පත් කිරීමට මඟ පෑදූ විට එය“ tive ලදායී නොවන්නේ ”කෙසේද?
ජෙරී 101

14
ඇත්ත වශයෙන්ම, SO යනු නිවැරදි ආකෘතිය සමඟ තාක්ෂණය සඳහා පමණි. ඔබට සියුම්, කුතුහලය දනවන හා දුරදිග යන යමක් තිබේ නම්, කරුණාකර වෙනත් තැනක බලන්න. නිලධාරිවාදී මානසිකත්වය දිගු කල් ජීවත් වේ.
qed

Answers:


893

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

ඇත්ත වශයෙන්ම mapඑහි සංකීර්ණ වර්ගයට අනුබල දෙන ක්‍රියාකාරීත්වය තරමක් දියුණු ය. මෙය සලකා බලන්න:

scala> import collection.immutable.BitSet
import collection.immutable.BitSet

scala> val bits = BitSet(1, 2, 3)
bits: scala.collection.immutable.BitSet = BitSet(1, 2, 3)

scala> val shifted = bits map { _ + 1 }
shifted: scala.collection.immutable.BitSet = BitSet(2, 3, 4)

scala> val displayed = bits map { _.toString + "!" }
displayed: scala.collection.immutable.Set[java.lang.String] = Set(1!, 2!, 3!)

ඔබට සෑම විටම හැකි හොඳම වර්ගය ලබා ගන්නේ කෙසේදැයි බලන්න? ඔබ Ints සිට s දක්වා සිතියම් ගත කළහොත් ඔබට Intනැවත a ලැබෙනු ඇත BitSet, නමුත් ඔබ Ints සිට Strings දක්වා සිතියම් ගත කරන්නේ නම් ඔබට සාමාන්‍යයක් Setලැබේ. සිතියමේ ප්‍රති result ලයේ ස්ථිතික වර්ගය සහ ධාවන කාල නිරූපණය යන දෙකම රඳා පවතින්නේ එය වෙත ලබා දුන් ශ්‍රිතයේ ප්‍රති result ල වර්ගය මත ය. කට්ටලය හිස් වුවද මෙය ක්‍රියාත්මක වේ, එබැවින් ශ්‍රිතය කිසි විටෙකත් අදාළ නොවේ! මා දන්නා තරමින් සමාන ක්‍රියාකාරීත්වයක් සහිත වෙනත් එකතු කිරීමේ රාමුවක් නොමැත. තවමත් පරිශීලක ඉදිරිදර්ශනය සිට මෙම දේවල් කරන ආකාරය වේ යැයි කියනු වැඩට.

අපට ඇති ගැටළුව නම් මෙය සිදු කරන සියලු දක්ෂ තාක්‍ෂණය විශාල හා බියජනක බවට පත්වන ආකාරයේ අත්සන් වලට කාන්දු වීමයි. නමුත් සමහර විට පරිශීලකයාගේ සම්පූර්ණ අත්සන පෙරනිමියෙන් පෙන්විය යුතු නොවේද map? කොහොමද ඇය දෙස බලා නම් ගැන mapදී BitSetඇය විය:

map(f: Int => Int): BitSet     (click here for more general type)

පරිශීලක දෘෂ්ටිකෝණයකින් ඇත්ත වශයෙන්ම සිතියමෙහි වර්ගය ඇති බැවින් ලේඛය එම අවස්ථාවේ දී බොරු නොකියයි (Int => Int) => BitSet. නමුත් mapතවත් සබැඳිය මත ක්ලික් කිරීම මගින් පරීක්ෂා කළ හැකි වඩා පොදු වර්ගය ඇත.

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


107
මට නපුරු පාසල් සිසුවෙක් වගේ දැනෙනවා! මෙහි ප්‍රතිචාර දැක්වීමට කාලය ගැනීම ගැන ඔබට බොහෝම ස්තූතියි. මම හිතන්නේ පිළිතුරු වල ශේෂය මට කරදර විය යුතු නැති බව පෙන්වා දී ඇත; කිසිසේත් බිය නොවී සිටින මිනිසුන් ප්‍රමාණවත් වනු ඇත.
oxbow_lakes

164
නැහැ, මම හිතන්නේ ඔබ එම ස්ථානයට පහර දීමට හරියටම හරි. අපි ඒ ගැන යමක් නොකරන්නේ නම් අනෙක් අය බිය වනු ඇත.
මාටින් ඔඩර්ස්කි

33
මාටින්, සරල ක්‍රම අත්සන් පෙන්වීමට සහ සබැඳියක් පිටුපස ඇති සාමාන්‍ය තොරතුරු සැඟවීමට ඔබේ යෝජනාවට මම කැමතියි.
ඩෙරෙක් මහර්

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

98
යාවත්කාලීන කිරීම: අවසාන Scala 2.8 නිකුතුවට මා විස්තර කළ ආකාරයටම යාන්ත්‍රණයක් ඇත. ඔබ සොයාගත් පරිමාණයන්හි බිට්සෙට් දෙස බැලුවහොත්: def map [B] (f: (Int) ⇒ B): බිට්සෙට් [B] [නඩුව භාවිතා කරන්න] මෙම බිට්සෙට් හි සියලුම අංග වලට ශ්‍රිතයක් යෙදීමෙන් නව එකතුවක් සාදයි.
මාටින් ඔඩර්ස්කි

226

මට ආචාර්ය උපාධියක් හෝ වෙනත් ආකාරයක උපාධියක් CS හෝ ගණිතය හෝ වෙනත් කිසිදු ක්ෂේත්‍රයක් නොමැත. මට ස්කාලා හෝ වෙනත් සමාන භාෂාවක් පිළිබඳ පූර්ව අත්දැකීම් නොමැත. දුරස්ථව සැසඳිය හැකි ආකාරයේ පද්ධති සමඟ මට අත්දැකීම් නොමැත. ඇත්ත වශයෙන්ම, මා හට මතුපිට දැනුමක් ඇති එකම වර්ගයේ පද්ධතියක් පවා ඇති එකම භාෂාව පැස්කල් වන අතර එහි නවීන වර්ගයේ පද්ධතියට හරියටම නොදැනේ. (එය වුවත් කරන්නේ AFAIK එච්චරමයි වෙනත් කිසිදු භාෂාවක් තිබෙනවා, නමුත් මෙහි ඇත්තටම අදාළ නොවන පරාසය වර්ග, ඇත.) වෙනත් භාෂා තුනක් මම දන්නේ කිසිවක් පවා වර්ගයක් පද්ධතිය ඇති, මූලික, Smalltalk හා රතු වේ.

එහෙත්, mapඔබ පළ කළ ශ්‍රිතයේ අත්සන තේරුම් ගැනීමට මට කිසිඳු කරදරයක් නැත . එය mapමා මෙතෙක් දැක ඇති අනෙක් සෑම භාෂාවකම ඇති එකම අත්සන මෙන් පෙනේ. වෙනස නම් මෙම අනුවාදය වඩාත් ජනක ය. එය හස්කල්ට වඩා C ++ STL දෙයක් මෙන් පෙනේ. විශේෂයෙන්, එය කොන්ක්‍රීට් එකතු කිරීමේ වර්ගයෙන් IterableLikeවියුක්ත වන්නේ තර්කය පමණක් අවශ්‍ය වීමෙන් පමණක් වන අතර , කොන්ක්‍රීට් නැවත පැමිණීමේ වර්ගයෙන් වියුක්ත වන්නේ එම ප්‍රති result ල අගයන් එකතුවෙන් යමක් ගොඩනගා ගත හැකි ව්‍යංග පරිවර්තන ශ්‍රිතයක් පැවතීම පමණි. ඔව්, එය තරමක් සංකීර්ණ ය, නමුත් එය සැබවින්ම සාමාන්‍ය ක්‍රමලේඛනයේ සාමාන්‍ය පරමාදර්ශයේ ප්‍රකාශනයක් පමණි: ඔබට ඇත්ත වශයෙන්ම අවශ්‍ය නොවන කිසිවක් උපකල්පනය නොකරන්න.

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

ඉතින්, ඒ වෙනුවට

map :: (a → b)[a][b]

සාම්ප්‍රදායික වර්ගයේ අත්සන mapවන එය සාමාන්‍යකරණය කර ඇත්තේ කොන්ක්‍රීට් අවශ්‍ය Listනොව IterableLikeදත්ත ව්‍යුහයක් පමණි

map :: (IterableLike i, IterableLike j)(a → b) → i → j

එය තවදුරටත් සාමාන්‍යකරණය කරනු ලබන්නේ පරිශීලකයාට අවශ්‍ය ඕනෑම දත්ත ව්‍යුහයකට ප්‍රති result ලය පරිවර්තනය කළ හැකි ශ්‍රිතයක් පැවතීම පමණි .

map :: IterableLike i ⇒ (a → b) → i → ([b] → c) → c

සින්ටැක්ස් ටිකක් ක්ලන්කියර් බව මම පිළිගනිමි, නමුත් අර්ථ නිරූපණය එක හා සමානයි. මූලික වශයෙන්, එය ආරම්භ වන්නේ

def map[B](f: (A) ⇒ B): List[B]

සඳහා සාම්ප්‍රදායික අත්සන mapඑයයි. (ස්කලා හි වස්තු-නැඹුරු ස්වභාවය නිසා ආදාන ලැයිස්තු පරාමිතිය අතුරුදහන් වන්නේ කෙසේදැයි බලන්න, මන්ද එය දැන් තනි යැවීමේ OO පද්ධතියක සෑම ක්‍රමයක්ම ඇති ව්‍යංග ග්‍රාහක පරාමිතියයි.) ඉන්පසු එය කොන්ක්‍රීට් Listසිට වඩාත් සාමාන්‍යය දක්වා සාමාන්‍යකරණය වියIterableLike

def map[B](f: (A) ⇒ B): IterableLike[B]

දැන්, මේක ද විස්ථාපනය IterableLikeකරන කාර්යය සමඟ ප්රතිඵලයක් එකතුව නිෂ්පාදනය ඇත්තටම කිසිම දෙයක් ගැන, හොඳින්,.

def map[B, That](f: A ⇒ B)(implicit bf: CanBuildFrom[Repr, B, That]): That

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

  1. ඔබ (දළ වශයෙන්) කුමක්දැයි mapදැනගත යුතුය. ක්‍රමයේ නමක් නොමැතිව ඔබ ටයිප් අත්සන පමණක් ලබා දුන්නේ නම් , සිදුවන්නේ කුමක්දැයි සොයා ගැනීම වඩා දුෂ්කර වනු ඇති බව මම පිළිගනිමි. කළ යුතු දේ ඔබ දැනටමත් දන්නා නිසාත් map, එහි අත්සන කුමක් විය යුතු දැයි ඔබ දන්නා නිසාත්, ඔබට ඉක්මනින් අත්සන පරිලෝකනය කර විෂමතා කෙරෙහි අවධානය යොමු කළ හැකිය, "මෙය mapකාර්යයන් දෙකක් තර්ක ලෙස ගන්නේ ඇයි , එකක් නොව?"
  2. අත්සන වර්ගය කියවීමට ඔබට හැකි විය යුතුය. ඔබ මීට පෙර කවදාවත් දැක නැති වුවද, මෙය බෙහෙවින් පහසු විය යුතුය, මන්ද එය ඇත්ත වශයෙන්ම ඔබ දැනටමත් වෙනත් භාෂාවලින් දන්නා ආකාරයේ සින්ටැක්ස් වල මිශ්‍රණයක් පමණක් වන බැවිනි: VB.NET පරාමිතික බහුමාපකය සඳහා වර්ග වරහන් භාවිතා කරයි, සහ ඊතලයක් භාවිතා කිරීමට දැක්වේ ආපසු වර්ගය සහ නම සහ වර්ගය වෙන් කිරීම සඳහා මහා බඩවැලක් ඇත්ත වශයෙන්ම සම්මතයයි.
  3. සාමාන්‍ය ක්‍රමලේඛනය යනු කුමක්දැයි ඔබ දළ වශයෙන් දැනගත යුතුය. (කුමන නොවේ බව එය මූලික වශයෙන් සියලු නාමය තුල සඳහන්ව තිබීම, තියෙන්නේ සිට, වෙහෙස මහන්සි වී හොයාගන්න: එය ප්රායෝගික පමණක් Generic බලපත්රය යටතේ අවසර ලබා ඇත විලාසිතා වැඩසටහන් ඇති).

මෙම තිදෙනාගෙන් කිසිවෙකු කිසිදු වෘත්තීය හෝ විනෝදාංශ වැඩසටහන්කරුවෙකුට බරපතල හිසරදයක් ලබා නොදිය යුතුය. mapපසුගිය අවුරුදු 50 තුළ නිර්මාණය කරන ලද සෑම භාෂාවකම සම්මත කාර්යයක් වී ඇති අතර, විවිධ භාෂාවන්ට විවිධ සින්ටැක්ස් ඇති බව HTML සහ CSS සමඟ වෙබ් අඩවියක් නිර්මාණය කර ඇති ඕනෑම කෙනෙකුට පැහැදිලිව පෙනෙන අතර ඔබට දුරස්ථ වැඩසටහන්කරණයකට දායක විය නොහැක. සාමාන්‍ය ක්‍රමලේඛනයේ ගුණාංග පැහැදිලි කරමින් ශාන්ත ස්ටෙපනොව් දේවස්ථානයේ සිට කරදරකාරී සී ++ රසිකයින් නොමැතිව අදාළ තැපැල් ලැයිස්තුව.

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


36
Or ජෝර්ජ් - එය නියම පිළිතුරකි; ඔබට ස්තුතියි. ඔබට උපාධියක් තිබුණත් නැතත්, ඔබ මට වඩා දීප්තිමත් මිනිසෙකි. මට ඇති එකම විකාරය නම් ක්‍රම අත්සනෙහි සිදුවන්නේ කුමක්ද යන්න පිළිබඳ පුළුල් චිත්‍රය මට වැටහීමයි . කෙසේ වෙතත්, විස්තර තවමත් අවුල් සහගත ය: Thatඅනුමාන කරන්නේ කෙසේද සහ වර්ගයට සම්බන්ධ වන්නේ කෙසේද යන්න Bමතකයට නැඟෙන එක් ප්‍රශ්නයක් වේ. වෙනත් අයෙකු වීමෙන් ඇති වන ඇඟවුම් කොහේද? මෙම සවිස්තරාත්මක නිරීක්ෂණ නොමැතිව වුවද, මෙය සංකීර්ණ අත්සනක් බව මට තවමත් පෞද්ගලිකව දැනේ. නමුත් පෙනෙන විදිහට ඔබ වැනි අය මේ ගැන පුදුම නොවී සිටිති.
oxbow_lakes

50
හොඳ පැහැදිලි කිරීමක්, නමුත් ස්කාල 2.8 “සිතියම්” ක්‍රමයේ අත්සන ඉතා සංකීර්ණ බව ඔබ ඊටත් වඩා මට ඒත්තු ගැන්වුවා.
ඩෙරෙක් මහර්

11
මේ ආකාරයට පෙනෙන භාෂාවක්: def map [B] (f: (A) ⇒ B): IterableLike [B] මේ වගේ පෙනුමට වඩා ආරාධනා කරයි: def map [B, That] (f: A ⇒ B ) (ව්‍යංග bf: CanBuildFrom [Repr, B, That]): එය
මාර්ක් එසෙල්

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

14
"සිතියම :: (අ -> ආ) -> [අ] -> [ආ]" හිස්කල් සමඟ සැසඳීම වැරදියි යන්න ඔබට වලංගු කරුණක් ඇත. කෙසේ වෙතත්, සාමාන්‍යකරණය කරන ලද අනුවාදය, ෆන්ක්ටර් පන්තියට වඩා තවමත් ස්කාල අනුවාදයට වඩා සරල ය: පන්තියේ ෆන්ක්ටර් එෆ් එහිදී fmap :: (a -> b) -> fa -> fb
Orclev

175

C ++ හි එකම දේ :

template <template <class, class> class C,
          class T,
          class A,
          class T_return,
          class T_arg
              >
C<T_return, typename A::rebind<T_return>::other>
map(C<T, A> &c,T_return(*func)(T_arg) )
{
    C<T_return, typename A::rebind<T_return>::other> res;
    for ( C<T,A>::iterator it=c.begin() ; it != c.end(); it++ ){
        res.push_back(func(*it));
    }
    return res;
}

105
... ඔවුන් කියනවා ස්කලා අපැහැදිලි කියලා. ඩු!
missingfaktor

24
අත්තනෝමතික ලොකු අකුරු වෙනුවට නිසි ස්වයං විස්තර කිරීමේ හඳුනාගැනීම් භාවිතා කර ඇත්නම් එය කෙබඳු වනු ඇත්දැයි සිතා බලන්න. :-)
Ti Strga

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

2
මම අනිවාර්ය ශ්‍රිත දර්ශකයේ විශාල රසිකයෙක් නොවේ. පැහැදිලිව වර්ගය funcසැකිලි පරාමිතිය විය යුතු අතර, ඔබ භාවිතා කළ යුත්තේ result_ofසහ is_callableඅනෙකුත් වර්ග ලබා ගැනීම සඳහා සහ නිසි පරිදි අධි බර කට්ටලයක් සීමාකිරීමට :-)
Kerrek එස්.බී.

2
මගේ ඇස් රිදෙනවා !!!
අෂ්කන් ඛ. Nazary

71

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

මා එයින් අදහස් කරන්නේ එයයි ... බොහෝ ක්‍රමලේඛකයින් එම වර්ගයේ අත්සන ගැන තැකීමක් නොකරයි, මන්ද ඔවුන් කිසි විටෙකත් ඒවා නොදකිනු ඇත ! ඔවුන් ලියකියවිලි කියවන්නේ නැත.

කේතය ක්‍රියාත්මක වන ආකාරය පිළිබඳ යම් උදාහරණයක් ඔවුන් දුටු තාක් කල් සහ ඔවුන් අපේක්ෂා කරන ප්‍රති result ලය ලබා දීමට කේතය අසමත් නොවන්නේ නම් , ඔවුන් කිසි විටෙකත් ප්‍රලේඛනය දෙස නොබලනු ඇත. එය අසමත් වූ විට, ඔවුන් ප්‍රලේඛනය දෙස බලා ඉහළින් භාවිත උදාහරණ දැකීමට බලාපොරොත්තු වේ .

මේ දේවල් මනසේ තබාගෙන මම හිතන්නේ:

  1. එවැනි අත්සනක් හරහා පැමිණෙන ඕනෑම අයෙකු (බොහෝ දෙනා මෙන්) ස්කලාට එරෙහිව පූර්වයෙන් බැහැර කරනු ලැබුවහොත් එය සමච්චලයට ලක් කරනු ඇති අතර ඔවුන් ස්කලාට කැමති නම් එය ස්කලාගේ බලයේ සංකේතයක් ලෙස සලකනු ඇත.

  2. භාවිත නිදසුන් සැපයීමට සහ ක්‍රමවේදයක් යනු කුමක්ද සහ එය භාවිතා කරන්නේ කෙසේද යන්න පැහැදිලි කිරීම සඳහා ප්‍රලේඛනය වැඩි දියුණු නොකළේ නම්, එය ස්කලා දරුකමට හදා ගැනීමෙන් ටිකක් ract ත් විය හැකිය.

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

  4. සරල බව සහ ness ජුව කැමති වැඩසටහන්කරුවන් PHP හෝ ඒ හා සමාන භාෂාවන් දිගටම භාවිතා කරනු ඇත.

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

ජාවා ගැන කතා කරමින්, ඔබ කවදා හෝ පන්ති ලෝඩරය ප්‍රතිස්ථාපනය කළාද? ඊට සම්බන්ධ වන්නේ කුමක්දැයි ඔබ කවදා හෝ සොයා බැලුවද? රාමු ලේඛකයින් කරන ස්ථාන දෙස බැලුවහොත් ජාවා බියජනක විය හැකිය. එය බොහෝ මිනිසුන් නොකරන දෙයකි. ස්කලා, අයිඑම්එච්ඕ සඳහා ද මෙයම අදාළ වේ, නමුත් මුල් දරුකමට හදාගන්නන් හට හමු වන සෑම පර්වතයක් යටම බැලීමට ප්‍රවණතාවක් ඇත, එහි යමක් සැඟවී තිබේදැයි බැලීමට.


10
As long as they saw some example of how the code works, and the code doesn't fail them in producing the result they expect, they won't ever look at the documentation. When that fails, they'll look at the documentation and expect to see usage examples at the top.කනගාටුදායක නමුත් ඇත්ත.
gamliela

9
ඇගම්ලීලා, මම හිතන්නේ නැහැ අපි මේ ගැන දුක් වෙයි කියලා. දැනුම සෑම විටම අයදුම් කිරීමට එක් මට්ටමකට වඩා ඇති අතර, ඕනෑම පද්ධතියක අන් අයගේ වැඩ සහ විශ්වාසය (සම-සමාලෝචනය) සැමවිටම උත්තේජනය කළ හැකිය, අප දිනපතා ගණිතය භාවිතා කරන අතරම එය පිටුපස වැඩ කරන බිහිසුණු වීජ ගණිතය මුළුමනින්ම නොසලකා හරිනු ලැබේ.
lcn

55

මෙය මිනිසුන් ස්කලා වෙත පැමිණීම වළක්වනු ඇත්ද?

ඔව්, නමුත් එය මිනිසුන් කල් දැමීම වලක්වනු ඇත. ඉහළ වර්ගයේ වර්ග සඳහා එකතු කිරීම් නොමැතිකම ප්‍රධාන දුර්වලතාවයක් ලෙස මම සලකමි. එය API ලියකියවිලි වඩාත් සංකීර්ණ කරයි, නමුත් එය සැබවින්ම භාවිතය වඩාත් ස්වාභාවික කරයි.

කැපවූ ආචාර්ය උපාධිධාරීන්ට පමණක් තේරුම් ගත හැකි ශාස්ත්‍රීය සෙල්ලමක් ලෙස මෙය වාණිජ ලෝකයේ පරිමාණයට නරක නමක් ලබා දෙයිද? සීටීඕ සහ මෘදුකාංග ප්‍රධානීන් බියට පත් වේද?

සමහරු එසේ කරනු ඇත. බොහෝ "වෘත්තීය" සංවර්ධකයින්ට Scala ප්‍රවේශ විය හැකි යැයි මම නොසිතමි, අර්ධ වශයෙන් Scala හි සංකීර්ණතාවය සහ අර්ධ වශයෙන් බොහෝ සංවර්ධකයින් ඉගෙනීමට ඇති අකමැත්ත නිසා ය. එවැනි සංවර්ධකයින් සේවයේ යොදවා ඇති සීටීඕවරු බිය වනු ඇත.

පුස්තකාලය නැවත සැලසුම් කිරීම සංවේදී අදහසක්ද?

නියත වශයෙන්ම. එය තවමත් රළු දාර කිහිපයක් තිබුණද, එකතු කිරීම් සෙසු භාෂාව හා වර්ග පද්ධතිය සමඟ වඩා හොඳින් ගැලපේ.

ඔබ පරිමාණයෙන් වාණිජමය වශයෙන් භාවිතා කරන්නේ නම්, ඔබ මේ ගැන කරදර වෙනවාද? ඔබ වහාම 2.8 දරුකමට හදා ගැනීමට සැලසුම් කර තිබේද?

මම එය වාණිජමය වශයෙන් භාවිතා නොකරමි. දෝෂ ඉවත් කිරීමට හැකි වන පරිදි අවම වශයෙන් යුවළක් 2.8.x ශ්‍රේණියට එය හඳුන්වා දීමට උත්සාහ කරන තෙක් මම බලා සිටිමි. මුදා හැරීමේ ක්‍රියාවලියක් වැඩිදියුණු කිරීමේදී ඊපීඑෆ්එල් කොතරම් සාර්ථකත්වයක් ලබා ඇත්දැයි මම බලා සිටිමි. මා දකින දේ බලාපොරොත්තු සහගත බව පෙනේ, නමුත් මම වැඩ කරන්නේ කොන්සර්වේටිව් සමාගමක ය.

"ස්කලා ප්‍රධාන ධාරාවේ සංවර්ධකයින්ට වඩා සංකීර්ණද?" යන වඩාත් පොදු මාතෘකාවකි ...

බොහෝ සංවර්ධකයින්, ප්‍රධාන ධාරාවේ හෝ වෙනත් ආකාරයකින්, පවතින පද්ධති නඩත්තු කිරීම හෝ දීර් ing කිරීම. මෙයින් අදහස් කරන්නේ ඔවුන් භාවිතා කරන බොහෝ දේ බොහෝ කලකට පෙර ගනු ලැබූ තීරණ මගින් නියම කර ඇති බවයි. COBOL ලියන අය තවමත් ඕනෑ තරම් සිටිති.

හෙට දවසේ ප්‍රධාන ධාරාවේ සංවර්ධකයා විසින් අද දින ගොඩනගනු ලබන යෙදුම් නඩත්තු කිරීම හා දීර් ing කිරීම සිදු කරනු ඇත. මෙම යෙදුම් බොහොමයක් ප්‍රධාන ධාරාවේ සංවර්ධකයින් විසින් ගොඩනගා නොමැත. හෙට දවසේ ප්‍රධාන ධාරාවේ සංවර්ධකයින් නව යෙදුම්වල වඩාත්ම සාර්ථක සංවර්ධකයින් විසින් භාවිතා කරනු ලබන භාෂාව භාවිතා කරනු ඇත.


31
"එය මිනිසුන් කල් දැමීම වළක්වනු ඇත". මෙය. නියත වශයෙන්ම. පරිමාණය යනු හස්කල් හා සැසඳිය හැකි දෙයක් (එහි වර්ගයේ පද්ධතියේ බලයෙන්) අප බොහෝ දෙනෙකුට ලබා ගත හැකි පළමු භාෂාවයි. හැස්කල් භාවිතා කිරීමට මට ඒත්තු ගැන්විය හැකි ක්‍රමයක් නොමැත, නමුත් පරිමාණයට සැබවින්ම අවස්ථාවක් ඇති අතර ඒ සඳහා මම එයට ප්‍රිය කරමි. (එය අර්ථවත් යැයි මා සිතන විට) එය සම්මත කර ගැනීමට උත්සාහ කරයි, හෝ අවම වශයෙන් පිළිගනු ලැබේ, රාජකාරියේ දී.
ඇන්ඩ rew කුක්

+1 මගෙන්. ස්කලා භාෂා ගැඹුරට සහ තදබල බව කෙරෙහි වැඩි අවධානයක් යොමු කරන්නේ මහා ප්‍රවේශ්‍යතාවයට වඩා, මෙම පිළිතුරු මනාව ගැලපේ.
කාල් ස්මොට්‍රික්ස්

16
"හෙට දවසේ ප්‍රධාන ධාරාවේ සංවර්ධකයින් නව යෙදුම්වල වඩාත්ම සාර්ථක සංවර්ධකයින් විසින් භාවිතා කරනු ලබන භාෂාව භාවිතා කරනු ඇත." +1. දීප්තිමත් ලෙස පැවසීය.
වාසිල් රෙමනියුක්

46

ස්කලා ප්‍රජාවට නව ක්‍රමලේඛකයින්ගේ බිය ලිහිල් කිරීමට උපකාරී වන එක් ක්‍රමයක් නම් පුහුණුව කෙරෙහි අවධානය යොමු කිරීම සහ ආදර්ශයෙන් ඉගැන්වීමයි - කුඩා ලෙස ආරම්භ වී ක්‍රමයෙන් විශාල වන උදාහරණ රාශියක්. මෙම ප්‍රවේශය ගන්නා අඩවි කිහිපයක් මෙන්න:

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


43

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

විශේෂයෙන්ම දැන් ඉන්ටෙලිජේ විසින් IMHO විසින් හොඳම ස්කලා ප්ලගිනය සමඟ ඔවුන්ගේ සියුම් IDE නිකුත් කර ඇති අතර, පරිමාණ සංවර්ධනය සාපේක්ෂව වේදනා රහිත ය:

  • මට "අර්ධ සළකුණු නොමැති ජාවා" ලෙස ස්කලා භාවිතා කළ හැකි බව මට පෙනී ගියේය, එනම් මම ජාවාහි කරන දේට සමාන පෙනුමක් ඇති කේතයක් ලියන අතර, වර්ගය අනුමාන කිරීමෙන් ලබාගත් සින්ටැක්ටික් සංක්ෂිප්තයෙන් මඳක් ප්‍රයෝජන ගන්න. ව්‍යතිරේක හැසිරවීම, මම එය කිසිසේත් කරන විට, වඩාත් පහසු වේ. Getter / setter boilerplate නොමැතිව පන්ති අර්ථ දැක්වීම වඩා අඩු වාචික වේ.

  • වරකට වරක් මම ජාවාහි බහුවිධ රේඛාවලට සමාන වන පරිදි තනි පේළියක් ලිවීමට සමත් වෙමි. අදාළ වන විට, සිතියම්, නැමීම්, එකතු කිරීම, පෙරණය වැනි ක්‍රියාකාරී ක්‍රමවල දාම රචනා කිරීම විනෝදජනක වන අතර දැකීමට අලංකාර වේ.

  • ස්කලා හි වඩා බලයෙන් ක්‍රියාත්මක වන අංගයන්ගෙන් මා ප්‍රයෝජන ලබන්නේ කලාතුරකිනි: වසා දැමීම් සහ අර්ධ (හෝ ව්‍යංජන) කාර්යයන්, රටා ගැලපීම ... එය කාරුණික දෙයකි.

නවකයෙකු ලෙස, මම දැඩි හා මුග්ධ වාක්‍ය ඛණ්ඩය සමඟ දිගටම අරගල කරමි. පරාමිතීන් නොමැති ක්‍රම ඇමතුම් සඳහා වරහන් වර්‍ග අවශ්‍ය නොවේ. තරඟ ප්‍රකාශයේ ඇති අවස්ථාවන්ට මේද ඊතලයක් ( =>) අවශ්‍ය වේ, නමුත් ඔබට තුනී ඊතලයක් අවශ්‍ය ස්ථානද ඇත ( ->). බොහෝ ක්‍රම වලට කෙටි නමුත් ගුප්ත නම් තිබේ /:හෝ \:- මම ප්‍රමාණවත් අත්පොත් පෙරළන්නේ නම් මට මගේ දේවල් කර ගත හැකිය, නමුත් මගේ සමහර කේත අවසන් වන්නේ පර්ල් හෝ රේඛා ශබ්දය වැනි ය. උත්ප‍්‍රාසාත්මක ලෙස, සින්ටැක්ටික් කෙටිකාලීන වඩාත් ජනප්‍රිය බිටු වලින් එකක් කි‍්‍රයාත්මක නොවේ: ක‍්‍රමයක් Intනිර්වචනය නොකිරීම නිසා මම දිගටම දෂ්ට කරමි ++.

මෙය මගේ මතය පමණි: සී ++ හි සංකීර්ණත්වය සහ කියවීමේ හැකියාව සමඟ ඒකාබද්ධව සී ++ හි බලය ස්කලා සතුව ඇති බව මට හැඟේ. භාෂාවේ සින්ටැක්ටික් සංකීර්ණතාව නිසා API ප්‍රලේඛනය කියවීමට අපහසු වේ.

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


9
සමාවෙන්න සියලු අදහස් දැක්වීම ගැන. සතියක් යනු ප්‍රායෝගිකව ඕනෑම භාෂාවක් සඳහා විහිළුවක් වන නමුත් කළමනාකරුවන් එම විහිළුව ක්‍රියාවට නැංවීම වළක්වන්නේ නැත. වරක් මට C ++ සංවර්ධකයින් කණ්ඩායමක් ජාවා වෙත "කඩාවැටීමට" දින 3 ක් ලබා දෙන ලදී. මම දින 5 ක් ඉල්ලා සිටියත් අයවැය හේතූන් මත කෙටි විය.
කාල් ස්මොට්‍රික්ස්

22
මගේ පළමු රැකියාව සඳහා සඳුදා වැඩ ආරම්භ කිරීමට පෙර ඉගෙනීම සඳහා සම්මුඛ පරීක්ෂණය අවසානයේ මට C ++ පොතක් ලබා දෙන ලදී. ඔයා ඔක්කොම කරදරකාරයි.
ටොම් හෝවින් -

12
@ ටොම් @ එරික් ඔබට පිරිමි ළමයින්ට එය පහසුය. මට පරිගණකයට පරිපථ රූප සටහන් ලබා දී ඇත (එවකට CPU නැත), සම්මුඛ පරීක්ෂණය ලෙස දෝෂයක් නිවැරදි කිරීමට මට පැය දෙකක් ඇති බව පැවසීය .
ඩැනියෙල් සී. සොබ්රාල්

33
An ඩැනියෙල් om ටොම් @ එරික් මට වරක් 0 සහ 1 ලබා දුන් අතර සම්මුඛ පරීක්ෂණය අතරතුරදී රේඛීය වේලාවේදී නැප්සැක් ගැටළුව විසඳීමට ඒවා භාවිතා කරන ලෙස ඉල්ලා සිටියේය. මම එයට පහරක් දුන් නමුත් අවාසනාවකට මට සූර්යග්‍රහණය නිර්මාණය කිරීමට කාලය තිබුනි (එය නැප්සැක් වලට අඩු කළ හැකි යැයි මම සැක කරමි). #tall_tale
ඇලෙක්ස් මිලර්

10
Lex පරිකල්පනය නොමැති බව පෙන්නුම් කරන ඇලෙක්ස්. එක් විශාල ශුන්‍යයක් වමට ද තවත් කුඩා ශුන්‍ය දෙකක් එහි දකුණට ද තබන්න: එකක් අනෙකට ඉහළින්, ඉහළ එක මඳක් වමට. පහළ වමේ සිට ඉහළ දකුණට යන මෙම කුඩා ශුන්‍ය දෙක අතර එකක් තබන්න. රේඛීය වේලාවේදී නැප්සැක් විසඳීමේ අවස්ථාව එය බව පවසන්න. එහිදී, ඔබ ඉවරයි. :-) සූර්යග්‍රහණය සහ නැප්සැක් සමාන කිරීම සඳහා +1. :-)
ඩැනියෙල් සී. සොබ්රාල්

33

මම හිතන්නේ එම ක්‍රමයේ ඇති මූලික ගැටළුව වන්නේ (implicit bf : CanBuildFrom[Repr, B, That])කිසිදු පැහැදිලි කිරීමකින් තොරව ගමන් කිරීමයි. ව්‍යංග තර්ක මොනවාදැයි මා දැන සිටියද, මෙය ඇමතුමට බලපාන්නේ කෙසේද යන්න දැක්වෙන කිසිවක් නොමැත. පරිමාණයෙන් ලුහුබැඳීම මා වඩාත් ව්‍යාකූලත්වයට පත් කරයි ( CanBuildFromලියකියවිලි පවා සම්බන්ධ පන්ති කිහිපයක් ).

මම සරල "සඳහා විෂය පථය තුල ගම්ය වස්තුව තිබිය යුතු කියා මා හිතනවා bfවර්ගයේ වස්තූන් සඳහා තනන්නා සපයන Bනැවත වර්ගය බවට That" තරමක් උදව් වනු ඇත, නමුත් ඔබ ඇත්තටම ඕනේ සිතියම විට එය ආකාරයක වෑහෙන සංකල්පය වේ Aගේ Bගේ. ඇත්ත වශයෙන්ම, එය නිවැරදි යැයි මට විශ්වාස නැත, මන්ද එම වර්ගයේ Reprතේරුම කුමක්දැයි මා නොදන්නා අතර , ඒ සඳහා වන ලියකියවිලි Traversableනිසැකවම කිසිදු හෝඩුවාවක් ලබා නොදේ .

ඉතින්, මට විකල්ප දෙකක් ඉතිරිව ඇත, ඒ දෙකම ප්‍රසන්න නොවේ:

  • එය පැරණි සිතියම ක්‍රියාත්මක වන ආකාරය සහ වෙනත් බොහෝ භාෂාවලින් සිතියම ක්‍රියා කරන ආකාරය උපකල්පනය කරයි
  • මූලාශ්‍ර කේතයට තවත් ටිකක් හාරන්න

ස්කලා විසින් මෙම දේවල් ක්‍රියාත්මක වන ආකාරය පිළිබඳ ධෛර්යය හෙළි කරන බවත් අවසානයේ මෙය ඔක්ස්බෝ_ලේක්ස් විස්තර කරන දේ කිරීමට මාර්ගයක් සපයන බවත් මට වැටහී ඇත. නමුත් එය අත්සනෙහි අවධානය වෙනතකට යොමු කිරීමකි.


2
Reprගමන් කළ හැකි නිරූපණය, එනම්. Listහෝ Setහෝ Map. රාමුවක් ලෙස, ඔබ ක්‍රම අත්සන බැලීම ආරම්භ කිරීමට යන්නේ නම් (උදාහරණ පිටපත් කිරීමෙන් ක්‍රම භාවිතා කරනවාට වඩා), ඔබ පළමුව සාමාන්‍ය සැලසුම තේරුම් ගත යුතුය. IMHO Scaladoc උදාහරණ භාවිතයෙන් පිරී තිබිය යුතුය
oxbow_lakes

10
ඉතින්, Reprඑයින් අදහස් කරන්නේ කුමක්දැයි මම තීරණය කරන්නේ කෙසේද? මම පරිමාණයේ පැහැදිලි කිරීමක් බලාපොරොත්තු වෙමි, නමුත් එය මට පැහැදිලිව පෙනෙන්නට නැත. මම හිතන්නේ මෙය ස්කැලඩොක්හි පොදු රටාවක් බවයි (බලන්න Actor.reactසහ Actor.receive- මම කියමි, දැක ඇත්තෙමි, ඔවුන් මුළුමනින්ම වෙනස් දේවල් කරන බව, නමුත් ඔවුන්ගේ පරිමාණය සමාන වේ).
davetron5000

7
මම davetron5000 සමඟ එකඟ වෙමි. මට ස්කලා ගැන හොඳ අවබෝධයක් ඇත, නමුත් ව්‍යංග අර්ථ දැක්වීම් තවමත් මගේ හිස කැක්කුම ඇති කරයි. හේතුව ඇඟවුම් කරන්නේ ඒවා භාවිතා කරන ආකාරය නොවේ. පරිමාණ වර්ග අවබෝධ කර ගැනීම සඳහා වඩා හොඳ ලියකියවිලි සහ මෙවලම් සහාය නිශ්චිතවම තිබිය යුතුය. එයින් කියැවෙන්නේ, වර්ග පද්ධතියට සැබවින්ම වැදගත් යමක් ඉදිරිපත් කළ හැකි බවයි. නමුත් අප තවමත් සිටින්නේ සංවේදී වැඩසටහන්කරණයේ මාවතේ ආරම්භයේදී පමණි.
egaga

22

මම පරිමාණ ආරම්භකයකු වන අතර අවංකවම එම වර්ගයේ අත්සන සමඟ ගැටළුවක් නොපෙනේ. පරාමිතිය යනු සිතියම් ගත කිරීමේ කාර්යය සහ නිවැරදි එකතුව ආපසු ලබා දීම සඳහා සාදන්නාගේ පරාමිතියයි. පැහැදිලි සහ කියවිය හැකි.

ඇත්ත වශයෙන්ම, සියල්ලම ලස්සනයි. සාදන්නාගේ වර්ග පරාමිතීන් නිවැරදි ප්‍රතිලාභ වර්ගය තෝරා ගැනීමට සම්පාදකයාට ඉඩ දෙන අතර ව්‍යංග පරාමිති යාන්ත්‍රණය මෙම අමතර පරාමිතිය පන්ති පරිශීලකයාගෙන් සඟවයි. මම මෙය උත්සාහ කළෙමි:

Map(1 -> "a", 2 -> "b").map((t) => (t._2) -> (t._1)) // returns Map("a" -> 1, "b" -> 2)
Map(1 -> "a", 2 -> "b").map((t) =>  t._2)            // returns List("a", "b")

ඒක බහුමාපකය හරි.

දැන්, එය ප්‍රධාන ධාරාවේ ආදර්ශයක් නොවන අතර එය බොහෝ දෙනෙකු බිය ගන්වනු ඇත. එහෙත්, එහි ප්‍රකාශන හැකියාව සහ අලංකාරය අගය කරන බොහෝ දෙනෙකු ද එය ආකර්ෂණය කර ගනු ඇත.


20

අවාසනාවට ඔබ ලබා දුන් සිතියම සඳහා අත්සන සිතියම සඳහා වැරදි එකක් වන අතර ඇත්ත වශයෙන්ම නීත්‍යානුකූල විවේචන තිබේ.

පළමු විවේචනය නම් සිතියම සඳහා අත්සන කඩාකප්පල් කිරීමෙන් අපට වඩා සාමාන්‍ය දෙයක් තිබේ. පෙරනිමියෙන් මෙය ගුණධර්මයක් යැයි විශ්වාස කිරීම පොදු දෝෂයකි. එය එසේ නොවේ. සිතියම් ශ්‍රිතය Fx -> (x -> y) -> සංයුතියේ සහ අනන්‍යතාවයේ නීති දෙක පිළිපැදීමෙන් සටන් කරන්න. “සිතියම” සඳහා ආරෝපණය කර ඇති වෙනත් ඕනෑම දෙයක් විකාරයකි.

දී ඇති අත්සන වෙනත් දෙයක්, නමුත් එය සිතියම නොවේ. මා සිතන්නේ එය වීමට උත්සාහ කරන්නේ පුවත්පතේ ඇති “ට්‍රැවර්ස්” අත්සනෙහි විශේෂිත හා තරමක් වෙනස් කළ අනුවාදයක් වන ද එසෙන්ටර් ඔෆ් ඉටරේටර් රටාවයි. මෙන්න එහි අත්සන:

traverse :: (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)

මම එය ස්කලා බවට පරිවර්තනය කරමි:

def traverse[A, B](f: A => F[B], a: T[A])(implicit t: Traversable[T], ap: Applicative[F]): F[T[B]

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

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

කවුරුහරි ඒ ගැන කතා කරයි කියා මම බලාපොරොත්තු වෙමි, මක්නිසාද යත්, ස්කලා විසින් සිදුකිරීමට අවධාරනය කරන දෝෂ නිරාකරණය කර ගැනීම දුෂ්කර වනු ඇත, පෙනෙන හැටියට මට දැඩි විරෝධයක් ඇති හේතු නිසා ය. I.e. මා සහ ස්කලාගේ අරමුණු මෙම කාරණය සම්බන්ධයෙන් විවාදාත්මක ය, නමුත් ඔබේ අදහස වෙත ආපසු යන්න.

“සාමාන්‍ය ක්‍රමලේඛකයා” වෙතින් නිශ්චිත ප්‍රතිචාරයන් පුරෝකථනය කරමින් ඔබ බොහෝ විට ඔබේ අදහස ඉදිරිපත් කරමින් සිටියා විය හැකිය. එනම්, "නමුත් එය ඉතා සංකීර්ණයි!" හෝ එවැනි සමහරක්. මේවා ඔබ සඳහන් කරන යෙග්ස් හෝ බ්ලොච් ය. බුද්ධිමය-විරෝධී / ප්‍රායෝගිකවාදී ව්‍යාපාරයේ මෙම පුද්ගලයින්ට මා දක්වන ප්‍රතිචාරය තරමක් කටුක වන අතර මම දැනටමත් ප්‍රතිචාර රාශියක් අපේක්ෂා කරමි, එබැවින් මම එය අතහරිමි.

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


3
හායි ටෝනි - ඔබේ කල්පනාකාරී ආදානයට ස්තූතියි. මම එයට ප්‍රතිචාර 2 ක් ඉදිරිපත් කරමි. පළමුවැන්න නම්, මම “සාමාන්‍ය ක්‍රමලේඛකයා” ගැන සඳහන් නොකිරීම සහ ස්කලා අනිවාර්යයෙන්ම එකක් ඉලක්ක කර ගත් එකක් යැයි විශ්වාස නොකිරීම ය. එය මා විසින් පිළිසිඳගෙන හෝ වේවා, මම විශ්වාස කරන්නේ මම සාමාන්‍යයට වඩා ඉහළින් සිටින බවය; කෙසේ වෙතත්, අත්සන වර්ගය භයානක බව මට තවමත් දැනේ! වෙනත් වචන වලින් කිවහොත්, ස්කලාගේ ඉලක්ක වෙළඳපල වන සාමාන්‍යයට වඩා ඉහළ ක්‍රමලේඛකයින් පලවා හරිනු ඇතැයි මම තවමත් කණගාටු වෙමි.
oxbow_lakes

6
දෙවන කරුණ නම්, ස්කලා යනු කුමක්ද යන්න පිළිබඳව මම ඔබ සමඟ මූලික වශයෙන් එකඟ නොවෙමි : ස්කලා යනු ප්‍රායෝගික භාෂාවක් - න්‍යායාත්මකව පිරිසිදු එකක් නොවේ. ජේවීඑම් හි එය නිර්මාණය කර ඇත්තේ ඇයි? මෙය තනිකරම ප්‍රායෝගික තීරණයක් - එය "සැබෑ ලෝකයේ" සංවර්ධකයින් ඉලක්ක කර ගනිමින් - සම්මුතියක් අවශ්‍ය විය හැකි තේරීමක්! බ්ලොච් සහ යෙග් සාමාන්‍ය ක්‍රමලේඛකයන්ට වඩා බොහෝ දුරින් සිටින බව සලකන්න - නමුත් එය මගේ අදහසයි. ඉතා ගෞරවනීය හා බුද්ධිමත් පුද්ගලයින්ට පවා ඔබට වඩා වෙනස් වන සංකීර්ණත්වය සහ පාරිශුද්ධභාවය පිළිබඳ අදහස් තිබිය හැකිය. අවාසනාවට ඔබ වෙනුවෙන්, ඔවුන් ද ඉහළ බලපෑමක් ඇති කරයි.
oxbow_lakes

3
හෙලෝ ඔක්ස්බෝ_ලේක්ස්, නිරවද්‍යතාවයේ සහ ප්‍රායෝගිකභාවයේ වියදමින් වුවද සාමාන්‍ය ක්‍රමලේඛකයින් සතුටු කිරීම ස්කලාගේ ප්‍රකාශිත ඉලක්කයකි. සාමාන්‍ය සාමාන්‍ය ක්‍රමලේඛකයින් පලවා හරිනු ලැබේ (මට කතන්දර කිහිපයක් තිබේ), නමුත් වර්ගයේ අත්සන් බියජනක නිසා නොව, සමහර වැරදි වල ස්වභාවය නිසා ය. ස්කලා ප්‍රායෝගික හෝ න්‍යායාත්මක නොවන බව මම නොකියමි. එපමණක් නොව, එවැනි ද්විභාෂාවක් පවතින බවට (පොදු?) අදහසට මම දායක නොවෙමි. ස්කාලා පුස්තකාල සිතියම් අත්සන ඉස්කුරුප්පු කර ඇත. මම දැන් අවුරුදු ගණනාවක් තිස්සේ ස්කලාගේ වැරදි ගැන කටයුතු කරමින් සිටිමි. විශේෂයෙන් පුස්තකාල. නැවත එය කිරීමට කාලයයි.
ටෝනි මොරිස්

5
මම බ්ලොච් හෝ යෙග්ගේ ඉහළ ගෞරවයට පාත්‍ර වූ හෝ බුද්ධිමත් යැයි නොසිතමි, නමුත් ඔවුන් සැබවින්ම බලවත් ය. ඔව්, මෙය අවාසනාවකි.
ටෝනි මොරිස්

9
ඔබ ස්කලාගේ දිගු අත්සන සමඟ ගමන් කරන්නේ ඇයි? මොනොෆන්ක්ටර් සඳහා ස්කලාගේ සිතියම සම්මත fmap වේ. නමුත් බිට්සෙට් හෝ සිතියම [ඒ, බී] ඒකාධිකාරී නොවේ, නමුත් සිතියමෙහි අර්ථවත් අර්ථ දැක්වීමක් ඇත. ස්කලාගේ අත්සනෙහි අභිප්‍රේරණය එයයි, සහ ගමන් කිරීම මෙම ගැටළුව විසඳන්නේ නැත. සාමාන්‍යභාවය නරක දෙයක් වන්නේ ඇයි? යෙදුම් ෆන්ක්ටර්ස් ප්‍රයෝග නිරීක්ෂණය කරයි, පරිමාණයේ ඔවුන්ගේ අදහස කුමක්ද? අවසාන වශයෙන්, ස්කලාගේ සාමාන්‍ය සිතියම සාමාන්‍යකරණය කළ ගමන් මාර්ගයක් අනුව ක්‍රියාත්මක කළ හැකි යැයි මම විශ්වාස කරමි, කැන්බිල්ඩ් ෆ්‍රොම් එකක් භාරගෙන වෙනස් විය හැකි ට්‍රැවර්සෙබල් එකක් ආපසු ලබා දෙන්නෙමි: අවබෝධය සඳහා කැපකිරීම් අවශ්‍ය නැත!
බ්ලයිසෝර්බ්ලේඩ්

15

ප්‍රශ්නය සහ මාටින්ගේ පිළිතුර යන දෙකටම මම සම්පූර්ණයෙන්ම එකඟ වෙමි :). ජාවාහි පවා, සාමාන්‍ය ශබ්දය නිසා ජාවාඩොක් කියවීම වඩා දුෂ්කර ය. මෙය ස්කාලා හි සංයුක්ත කර ඇති අතර එහිදී ප්‍රශ්නවල උදාහරණ කේතයේ මෙන් ව්‍යංග පරාමිතීන් භාවිතා වේ (ඇඟවුම් ඉතා ප්‍රයෝජනවත් එකතු-මෝෆිං දේවල් කරයි).

භාෂාවට එය ගැටළුවක් යැයි මම නොසිතමි - එය වඩාත් මෙවලම් ප්‍රශ්නයක් යැයි මම සිතමි. ජෝග් ඩබ්ලිව් මිට්ටාග් පවසන දේ සමඟ මම එකඟ වන අතර, මම සිතන්නේ ස්කැලඩොක් (හෝ ඔබේ IDE හි වර්ගයක ලියකියවිලි) දෙස බැලීම - ක්‍රමවේදයක් යනු කුමක්ද, එය ගත යුතු දේ සහ නැවත පැමිණෙන්නේ කෙසේද යන්න දැන ගැනීමට එයට හැකි තරම් කුඩා මොළ ශක්තියක් අවශ්‍ය වේ. එය ලබා ගැනීම සඳහා වීජ ගණිතය ටිකක් කඩදාසි මත හැක් කිරීමේ අවශ්‍යතාවයක් නොතිබිය යුතුය :)

ඕනෑම විචල්යයක් / ප්රකාශනයක් / වර්ගයක් සඳහා සියලු ක්රම පෙන්වීමට IDEs හට හොඳ ක්රමයක් අවශ්ය බව (මාටින්ගේ උදාහරණයට අනුව සියලු ජනක විද්යුත් පෙළගැස්විය හැකි බැවින් එහි ලස්සන හා පහසුවෙන් ගොරෝසු වේ). පෙරනිමියෙන් ඇඟවුම් සඟවා තැබීමේ මාටින්ගේ අදහසට මම කැමතියි.

Scaladoc හි උදාහරණය ගැනීමට ...

def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Repr, B, That]): That

මෙය පරිමාණයෙන් බැලූ විට මම කැමතියි [B, that] පෙරනිමියෙන් සැඟවීමට සහ ව්‍යංග පරාමිතිය (සමහර විට ඔබ මූසිකය සමඟ කුඩා අයිකනයක් සැරිසරන්නේ නම් ඒවා පෙන්වනු ඇත) - එහි අමතර දේවල් ලෙස සාමාන්‍යයෙන් එය අදාළ නොවන එය කියවීම. උදා: මෙය පෙනේ නම් සිතන්න ...

def map(f: A => B): That

හොඳ සහ පැහැදිලි සහ පැහැදිලිව එය කරන දේ. 'එය' යනු කුමක්දැයි ඔබ කල්පනා කළ හැකිය, ඔබ එය මූසිකය මත ක්ලික් කළහොත් හෝ එය ක්ලික් කළහොත් එය උදාහරණයක් ලෙස 'එය' ඉස්මතු කරන [B, that] පෙළ පුළුල් කළ හැකිය.

[] ප්‍රකාශනය සහ (ව්‍යංග ...) වාරණය සඳහා කුඩා අයිකනයක් භාවිතා කළ හැකි අතර, එම ප්‍රකාශයේ සුළු කොටස් බිඳ වැටී ඇති බව පැහැදිලිය. ඒ සඳහා ටෝකනයක් භාවිතා කිරීම දුෂ්කර ය, නමුත් මම a භාවිතා කරමි. දැනට...

def map.(f: A => B).: That

එබැවින් පෙරනිමියෙන්, වර්ගයේ පද්ධතියේ 'ශබ්දය' සැවොම අවධානය යොමු කළ යුතු 80% ක ජනතාවගෙන් සැඟවී ඇත - ක්‍රමයේ නම, එහි පරාමිති වර්ග සහ ආපසු එන වර්ගය ඉතා සරල සංක්ෂිප්ත ආකාරයකින් - විස්තරයට පුළුල් කළ හැකි සබැඳි නොමැතිව ඔබ ඇත්තටම එතරම් සැලකිල්ලක් දක්වන්නේ නම්.

බොහෝ විට මිනිසුන් වර්ගයක් සඳහා කැඳවිය හැකි ක්‍රම මොනවාද සහ ඔවුන්ට සම්මත කළ හැකි පරාමිතීන් මොනවාදැයි දැනගැනීම සඳහා ස්කැඩඩොක් කියවති. IMHO කරන ආකාරය ගැන අපි ඕනෑවට වඩා විස්තර සහිතව පරිශීලකයින් අධික ලෙස පටවන්නෙමු.

මෙන්න තවත් උදාහරණයක් ...

def orElse[A1 <: A, B1 >: B](that: PartialFunction[A1, B1]): PartialFunction[A1, B1]

දැන් අපි ජනක ප්‍රකාශය සඟවා ගත්තොත් කියවීම පහසුය

def orElse(that: PartialFunction[A1, B1]): PartialFunction[A1, B1]

එවිට මිනිසුන් එහා මෙහා ගමන් කරන්නේ නම්, A1 යැයි ප්‍රකාශ කිරීම අපට පෙන්විය හැකිය A1 <: A. ජනක විද්‍යාවේ සහසංයුජ හා ප්‍රතිවිරෝධතා වර්ග විශාල ශබ්දයක් එක් කරන අතර එය මා සිතන පරිශීලකයින්ට පහසුවෙන් හසු කර ගත හැකිය.


5
ප්‍රති result ල වර්ගයක් ලෙස “එය” යන්නෙන් අදහස් කරන්නේ කුමක්ද?
බ්ලයිසෝර්බ්ලේඩ්

11

මම ඔබට එය කඩන්නේ කෙසේදැයි නොදනිමි, නමුත් මට කේම්බ්‍රිජ් වෙතින් ආචාර්ය උපාධියක් ඇත, මම 2.8 භාවිතා කරන්නේ ඉතා හොඳින් ය.

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

ඉතින්: මම "නව පරිශීලකයෙක්" වන අතර මා කල් දැමුවේ නැත - එය ජාවා මෙන් ක්‍රියා කරන නිසා මට නොතේරෙන බිටු නොසලකා හැරීමට ප්‍රමාණවත් විශ්වාසයක් ලැබුණි.

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


22
කේම්බ්‍රිජ් හි ආචාර්ය උපාධි නොමැති අයට ස්කලා 2.8 හැසිරවිය හැකිදැයි දැන ගැනීමට ඔහුට අවශ්‍ය යැයි මම සිතමි.
කෙන් බ්ලූම්

2
හහා: ස්පර්ශ කරන්න! හොඳයි, මම කිව්වේ පරිමාණ 2.8 භාවිතා කිරීම පහසුයි - මගේ ප්‍රශ්නය ඒපීඅයි බ්‍රවුස් කරන කෙනෙකුට ඔවුන් කැමති දැයි බැලීමට එය කෙසේ වනු ඇත්ද යන්න ගැන වැඩි යමක් විය, ඔවුන් ස්කාලා හි පෙර අත්දැකීම් නොමැති බව උපකල්පනය කරයි.
oxbow_lakes

1
@andrew - ඔබේ වෙබ් අඩවියේ ( acooke.org ) පෙනුමෙන් , දෘශ්‍යමය වශයෙන් බිය ගැන්වීමේ සංකල්ප පිළිබඳව ඔබ අපහසු නැත
oxbow_lakes

මැල්බෝල්ජ් ක්‍රමලේඛනයෙහි යෙදී සිටින ඕනෑම කෙනෙකුට, එය “හුදෙක්” හෙලෝ වර්ල්ඩ් වුවද, කිසිවක් බිය ගැන්වීමට ඉඩක් නැත.
කාල් ස්මොට්‍රික්ස්

10

ස්කාලාව කිසිසේත් නොදන්න, කෙසේ වෙතත් සති කිහිපයකට පෙර මට ක්ලෝජුර් කියවීමට නොහැකි විය. දැන් මට එය බොහෝමයක් කියවිය හැකි නමුත් වඩාත්ම සරල උදාහරණවලින් ඔබ්බට කිසිවක් ලිවිය නොහැක . මම සැක කරනවා ස්කලා ඊට වෙනස් නැහැ කියලා. ඔබ ඉගෙන ගන්නා ආකාරය අනුව ඔබට හොඳ පොතක් හෝ පා course මාලාවක් අවශ්‍ය වේ. ඉහත සිතියම් ප්‍රකාශය කියවීමෙන් මට ලැබෙන්නට ඇත 1/3 එය.

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


5
එය කිසි විටෙකත් අංකනය ගැන නොවේ (හෝ අංකනය ගැන 10-15% ට වඩා වැඩි නොවේ), එය සැමවිටම සංකල්ප ගැන ය. ඔබ සාධාරණ ලෙස බුද්ධිමත් නම් සහ විවිධ, සමහර විට පරස්පර විරෝධී ආකෘතීන් (මම බොහෝ විට මෙන්) පිළිබඳ දශක ගණනාවක දැනුමෙන් ඔබ හසු නොවන්නේ නම්, සාමාන්‍යයෙන් මේ දේවල් ග්‍රහණය කර ගැනීම එතරම් අපහසු නොවේ. නමුත් ඔබ එක් ආකාරයකින් සිතීමට හා දේවල් කිරීමට පෙළඹී සිටී නම්, එය අනුවර්තනය වීමට අවම වශයෙන් යම් උත්සාහයක් හෝ බොහෝ දෙනෙක් එවැනි වෙනස්කම් වලට ප්‍රතිචාර දක්වයි. එය මිනිස් මනෝ විද්‍යාව / සොබාදහම පමණි. (වෙයින්බර්ග්ගේ පරිගණක ක්‍රමලේඛනය පිළිබඳ මනෝ විද්‍යාව වසර 40 කට පමණ පසු පවතින්නේ කෙසේදැයි මම කල්පනා කරමි.)
රැන්ඩල් ෂුල්ස්

1
And රැන්ඩල් ෂුල්ට්ස් සහ ජෙෆ් ජී: බුද්ධිමත් පුද්ගලයෙකුට ගනුදෙනු කිරීමට සින්ටැක්ස් / අංකනය සාධාරණයි. එකම සංකල්ප සඳහා විවිධ නම්, මූලික වශයෙන්. නව භාෂාවකින් වේගයෙන් පැමිණීම ප්‍රායෝගික කාරණයක් පමණි. කෙසේ වෙතත්, ක්‍රියාපටිපාටියේ සිට ක්‍රියාකාරී ක්‍රමලේඛනය දක්වා වූ පියවර වන්නේ ... භයානක ලෙස පුළුල් ය. එය සැබවින්ම වෙනස් චින්තනයකි. මම මාස කීපයක් තිස්සේ ක්ලෝජුර් සමඟ පොරබදමින් සිටින අතර එය සාපේක්ෂව “පහසු” රසවත් එෆ්.පී. නමුත් ක්‍රියා පටිපාටි ක්‍රමලේඛනයේදී සරල වන දේවල් ප්‍රහේලිකා කිරීමට මට තවමත් අධික කාලයක් අවශ්‍ය වේ.
කාල් ස්මොට්‍රික්ස්

7

Scala හි පිස්සු අංග රාශියක් ඇත (විශේෂයෙන් ව්‍යංග පරාමිතීන් ගැන සැලකිලිමත් වන) ඒවා ඉතා සංකීර්ණ හා ශාස්ත්‍රීය පෙනුමක් ඇති නමුත් ඒවා නිර්මාණය කර ඇත්තේ දේවල් පහසුවෙන් භාවිතා කිරීමටය. වඩාත්ම ප්‍රයෝජනවත් අය සින්ටැක්ටික් සීනි ලබා ගනී ( [A <% B]එයින් අදහස් කරන්නේ A වර්ගයේ වස්තුවකට B වර්ගයේ වස්තුවකට ව්‍යංග පරිවර්තනයක් ඇති බවයි) සහ ඔවුන් කරන දේ පිළිබඳ මනාව ලේඛනගත පැහැදිලි කිරීමකි. නමුත් බොහෝ විට, මෙම පුස්තකාලවල සේවාදායකයෙකු ලෙස ඔබට ව්‍යංග පරාමිතීන් නොසලකා හැර නිවැරදි දේ කිරීමට විශ්වාස කළ හැකිය.


ඔව්, සින්ටැක්ස් බැලීම යනු ග්‍රහණය කර ගැනීම වේගවත් කරයි.
egaga

6

මෙය මිනිසුන් ස්කලා වෙත පැමිණීම වළක්වනු ඇත්ද?

ස්කලාට කොතරම් ජනප්‍රිය වනු ඇත්ද යන්න බලපාන ප්‍රධාන සාධකය එය යැයි මම නොසිතමි, මන්ද ස්කලාට විශාල බලයක් ඇති අතර එහි වාක්‍ය ඛණ්ඩය ජාවා / සී ++ / පීඑච්පී ක්‍රමලේඛකයෙකුට හැස්කෙල්, ඕකාම්, එස්එම්එල්, ලිස්ප්ස් වැනි විදේශීය නොවන බැවිනි. ආදිය ..

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

කැපවූ ආචාර්ය උපාධිධාරීන්ට පමණක් තේරුම් ගත හැකි ශාස්ත්‍රීය සෙල්ලමක් ලෙස මෙය වාණිජ ලෝකයේ නරක නාමයක් ලබා දෙයිද? සීටීඕ සහ මෘදුකාංග ප්‍රධානීන් බියට පත් වේද?

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

ප්‍රධාන ධාරාවේ වෙළඳපල සඳහා, පළමු වරට පරිමාණය ඉගෙනීම “නැවුම් වාතයේ හුස්මක්” නොවේ, එහිදී යමෙක් වහාම HTML හෝ පයිතන් භාවිතා කිරීම වැනි වැඩසටහන් ලියයි. ආරම්භයේ සිටම පැකිලෙන සියලු විස්තර දැනගත් පසු පරිමාණය ඔබ කෙරෙහි වර්ධනය වේ. කෙසේ වෙතත්, සමහර විට මම මුල සිටම ස්කලා හි වැඩසටහන්කරණය කියවා ඇත්නම්, ඉගෙනීමේ වක්‍රය පිළිබඳ මගේ අත්දැකීම් සහ මතය වෙනස් වනු ඇත.

පුස්තකාලය නැවත සැලසුම් කිරීම සංවේදී අදහසක්ද?

අනිවාර්යයෙන්ම.

ඔබ ස්කාලාව වාණිජමය වශයෙන් භාවිතා කරන්නේ නම්, ඔබ මේ ගැන කරදර වෙනවාද? ඔබ වහාම 2.8 දරුකමට හදා ගැනීමට සැලසුම් කර තිබේද?

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


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

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

  1. ලිවීම-පමණක් කේතය: මෙම කොටස ලිවීමෙන් පසුව, මම කාල් ස්මොට්‍රික්ස්ගේ අදහස කියෙව්වෙමි වෙළඳාම යැයි අපේක්ෂා කරන දෙයට එකඟ වන . ජේම්ස් ස්ට්‍රැචන් සහ ඩේව්ට්‍රොන් 5000 ගේ අදහස් වලට අනුව එහි අර්ථය (එය එසේ නොවේ [බී]) සහ ව්‍යංගයේ යාන්ත්‍රණය බුද්ධිමත්ව ග්‍රහණය කර ගැනීම පහසු නැත. පහත දැක්වෙන අංක 2 කලාපයේ මගේ මොනොයිඩ් භාවිතය බලන්න, එය වඩාත් පැහැදිලි යැයි මම සිතමි. ඩෙරෙක් මහර්ගේ ප්‍රකාශය වන්නේ ස්කාලාව ලිවීම ගැන ය, නමුත් “පොදු අවස්ථාවන්හි” නොවන වෙනත් අයගේ පරිමාණය කියවීම ගැන කුමක් කිව හැකිද?

    ස්කලා ගැන මා කියවා ඇති එක් විවේචනයක් නම්, අනෙක් අය ලියා ඇති කේතය කියවීමට වඩා එය ලිවීම පහසු බවය. විවිධ හේතූන් මත මෙය ඉඳහිට සත්‍ය බව මට පෙනේ (උදා: ශ්‍රිතයක් ලිවීමට බොහෝ ක්‍රම, ස්වයංක්‍රීය වසා දැමීම්, ඩීඑස්එල් සඳහා ඒකකය යනාදිය), නමුත් මෙය ප්‍රධාන සාධකය නම් මම තීරණය කර නොමැත. මෙහි ව්‍යංග ශ්‍රිත පරාමිතීන් භාවිතා කිරීම සඳහා ප්ලස් සහ us ණ ඇත. ප්ලස් පැත්තේ, එය වාචිකතාව අඩු කරන අතර තනන්නාගේ වස්තුව තේරීම ස්වයංක්‍රීය කරයි. ඔඩර්ස්කිගේ උදාහරණයේබිට්සෙට් එකක සිට සෙට් [ඉන්ට්] සිට සෙට් [ස්ට්‍රිං] බවට පරිවර්තනය කිරීම ව්‍යංග වේ. වර්තමාන පැකේජ විෂය පථය තුළ තිබිය හැකි නොපෙනෙන නොපෙනෙන ව්‍යංග සාදන්නන් අපේක්ෂකයින් පිළිබඳව හොඳින් තර්ක කළ නොහැකි නම්, කේතයේ නුහුරු පා read කයාට එකතු කිරීමේ වර්ගය කුමක්දැයි පහසුවෙන් දැනගත නොහැක. ඇත්ත වශයෙන්ම, පළපුරුදු ක්‍රමලේඛකයා සහ කේත රචකයා බිට්සෙට් ඉන්ටර්ට පමණක් සීමා වී ඇති බව දැන ගනු ඇත, එබැවින් ස්ට්‍රිං වෙත සිතියමක් වෙනත් එකතු කිරීමේ වර්ගයකට පරිවර්තනය කළ යුතුය. නමුත් එකතු කිරීමේ වර්ගය කුමක්ද? එය නිශ්චිතව දක්වා නැත.

  2. AD-HOC එකතු කිරීමේ සැලසුම: මෙම කොටස ලිවීමෙන් පසු, මම ටෝනි මොරිස්ගේ අදහස කියවා බැලුවෙමි . සමහර විට මගේ වඩාත් වාචික නිරූපණය මඟින් කාරණය වඩාත් පැහැදිලි වනු ඇත.

    "වර්ග සමඟ සටන් බිට් කුණුවීම" ඔඩර්ස්කි සහ මුවර්ස් හි භාවිතා කිරීමේ අවස්ථා දෙකක් ඉදිරිපත් කරයි. ඒවා නම් බිට්සෙට් සිට ඉන්ටර් මූලද්‍රව්‍ය දක්වා සීමා කිරීම සහ ටුපල් මූලද්‍රව්‍ය යුගලනය කිරීම සඳහා සිතියම වන අතර සාමාන්‍ය මූලද්‍රව්‍ය සිතියම්කරණ ශ්‍රිතය වන ඒ => බී විකල්ප ගමනාන්ත එකතු කිරීමේ වර්ග සෑදීමට සමත් විය යුතුය. කෙසේ වෙතත්, අෆයික් මෙය කාණ්ඩ සිද්ධාන්ත දෘෂ්ටිකෝණයකින් දෝෂ සහිතය. කාණ්ඩ සිද්ධාන්තයට අනුකූල වීමට හා එමඟින් කෙළවරේ සිදුවීම් වලක්වා ගැනීමට, මෙම එකතු කිරීමේ වර්ගයන් විනෝදජනක වන අතර, ඒ එක් එක් රූප විද්‍යාව, A => B, එකම ක්‍රියාකාරී කාණ්ඩයේ වස්තු අතර සිතියම් ගත කළ යුතුය, ලැයිස්තුව [A] => ලැයිස්තුව [B], බිට්සෙට් [A] => බිට්සෙට් [බී]. නිදසුනක් ලෙස, විකල්පයක් යනු සමහරක් (වස්තුවක්) සහ කිසිවක් නොමැති කට්ටල එකතුවක් ලෙස දැකිය හැකි විනෝදයකි. ඔප්ෂන් නෝන් හෝ ලිස්ට් නිල් වෙතින් වෙනත් සිතියම් සඳහා වෙනත් සිතියමක් නොමැත.

    වෙළඳ සැලසුම් සැලසුම් තේරීමක් මෙහි ඇත. මගේ නව භාෂාවේ එකතු කිරීමේ පුස්තකාලය සඳහා වන සැලසුමේදී, මම සෑම දෙයක්ම විනෝදකාමී එකක් බවට පත් කිරීමට තෝරා ගත්තෙමි, එයින් අදහස් කරන්නේ මම බිට්සෙට් එකක් ක්‍රියාත්මක කරන්නේ නම්, එයට සියලු මූලද්‍රව්‍ය වර්ග සඳහා සහය දැක්විය යුතු අතර, බිට් නොවන ක්ෂේත්‍ර අභ්‍යන්තර නිරූපණයක් භාවිතා කිරීමෙන් පූර්ණ සංඛ්‍යා වර්ග පරාමිතිය වන අතර, එම ක්‍රියාකාරීත්වය දැනටමත් එය පරිමාණයෙන් උරුම වන කට්ටලය තුළ ඇත. මගේ සැලසුමේ සිතියමට එහි අගයන් පමණක් සිතියම් ගත කළ යුතු අතර, එහි (යතුර, අගය) යුගල යුගල සිතියම් ගත කිරීම සඳහා වෙනම විනෝද නොවන ක්‍රමයක් සැපයිය හැකිය. එක් වාසියක් නම්, එක් එක් ක්‍රියාකරු සාමාන්‍යයෙන් අයදුම්කරුවෙකු වන අතර සමහර විට මොනාඩ් ද වේ. මේ අනුව මූලද්‍රව්‍ය වර්ග අතර ඇති සියලුම ශ්‍රිත, උදා: A => B => C => D => ..., ස්වයංක්‍රීයව ඔසවන ලද යෙදුම් වර්ග අතර ශ්‍රිත වෙත ඔසවනු ලැබේ, උදා: ලැයිස්තුව [A] => ලැයිස්තුව [B] => ලැයිස්තුව [. සී] => ලැයිස්තුව [ඩී] => .... විනෝදකාමියෙකුගේ සිට වෙනත් එකතු කිරීමේ පන්තියකට සිතියම් ගත කිරීම සඳහා, මම මොනොයිඩ් එකක් ගන්නා සිතියම් අධි බරක් ඉදිරිපත් කරමි, උදා: නිල්, කිසිවක් නැත, 0, "", අරාව () යනාදිය. එබැවින් සාදන්නාගේ වියුක්ත කිරීමේ ශ්‍රිතය මොනොයිඩයක එකතු කිරීමේ ක්‍රමය සහ අත්‍යවශ්‍ය ආදාන පරාමිතියක් ලෙස පැහැදිලිවම සපයනු ලැබේ, එබැවින් අදෘශ්‍යමාන ව්‍යංග පරිවර්තනයන් නොමැත. . මැක්බ්‍රයිඩ් සහ පැටසන් යන කාණ්ඩ අර්ථයෙන් මම ගමන් කළ හැකි, මැක්බ්‍රයිඩ් සහ පැටසන් යන දෙවර්ගයම ලබා දෙන්නෙමි, එමඟින් සිතියම් + එක් වර්‍තමාන පාස් එකකින් සිතියම් ගත කළ හැකි අතර ඕනෑම ගමන් කළ හැකි සිට ඕනෑම අයදුම්කරුවෙකුට, සෑම එකතු කිරීමේ පන්තියක්ම දෙකම වේ.

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

    මම කොහේ හරි කියෙව්වා, මම හිතන්නේ එය ඕඩර්ස්කි, පුස්තකාල සැලසුම සඳහා තවත් සාධාරණීකරණයක් ලෙස, පිරිසිදු ක්‍රියාකාරී ශෛලියකින් වැඩසටහන්කරණය කිරීම සීමිත පුනරාවර්තන හා වලිග පුනරාවර්තනය භාවිතා නොකරන වේගයේ පිරිවැය දරයි. මෙතෙක් මා මුහුණ දී ඇති සෑම අවස්ථාවකම වලිගය පුනරාවර්තනය කිරීම මට අපහසු වී නොමැත.


මීට අමතරව, ස්කලාගේ සමහර වෙළඳාම් සිදුවන්නේ විකෘති හා වෙනස් කළ නොහැකි භාෂාවක් වීමට උත්සාහ කිරීම නිසා යැයි අසම්පූර්ණ අදහසක් මගේ මතකයේ ඇත, උදාහරණයක් ලෙස හස්කල් හෝ මා සංවර්ධනය කරන භාෂාව මෙන් නොව. මෙය අවබෝධය සඳහා ටෝනි මොරිස්ගේ ප්‍රකාශය සමග සමපාත වේ. මගේ භාෂාවෙන්, ලූප සහ විකෘති ඉදිකිරීම් නොමැත. මගේ භාෂාව ස්කලා මුදුනේ හිඳිනු ඇත (දැනට) එයට බොහෝ සෙයින් ණයගැතියි. ස්කලාට සාමාන්‍ය වර්ගයේ ක්‍රමයක් සහ විකෘතිතාවයක් නොමැති නම් මෙය කළ නොහැකි වනු ඇත. එය සත්‍ය නොවිය හැකිය, මන්ද මම සිතන්නේ ඔඩර්ස්කි සහ මුවර්ස් ("වර්ග සමඟ සටන් බිට් කුණුවීම") වැරදියි, උසස් වර්ගවල ඇති එකම ඕඕපී භාෂාව ස්කලා බව ප්‍රකාශ කිරීම වැරදියි, මන්ද මම (මා සහ බොබ් හාපර් හරහා) එම ප්‍රමිතිය සත්‍යාපනය කළෙමි. එම්.එල්. එස්එම්එල් වර්ගයේ පද්ධතිය සමානවම නම්‍යශීලී විය හැකි බව පෙනේ (1980 සිට), වාක්‍ය ඛණ්ඩය ජාවා (සහ සී ++ / පීඑච්පී) වලට සමාන නොවන නිසා එය පහසුවෙන් අගය කළ නොහැක. කෙසේ වෙතත්, මෙය ස්කාලාව විවේචනය කිරීමක් නොව, වෙළඳාම පිළිබඳ අසම්පූර්ණ විශ්ලේෂණයක් ඉදිරිපත් කිරීමේ උත්සාහයක් වන අතර, එය ප්‍රශ්නයට ජර්මානු යැයි මම විශ්වාස කරමි. ස්කලා සහ එස්එම්එල් හට හස්කල්ගේ නොහැකියාවෙන් පීඩා විඳින්නේ නැතදියමන්ති බහුවිධ උරුමය තීරණාත්මක වන අතර මට වැටහී ඇත්තේ හැස්කල් පෙරවදනෙහි බොහෝ කාර්යයන් විවිධ වර්ග සඳහා පුනරාවර්තනය වන්නේ මන්ද යන්නයි.


ඉතින්, ඔබේ භාෂාව වස්තු-නැඹුරු වනු ඇත්ද?
missingfaktor

ඔව්, ස්කලාගේ වර්ගයේ පද්ධතිය උරුම වේ. එක් ප්‍රධාන වෙනසක් වන්නේ ගතිලක්ෂණ අතුරුමුහුණත හා මික්සින් ලෙස බෙදී ඇති අතර, අතුරු මුහුණතේ අඩංගු වන්නේ ක්‍රම අත්සන් පමණි. වර්ගයක් ලෙස සඳහන් කළ හැක්කේ අතුරු මුහුණතක් පමණි. ඇඟවුම් තුරන් කර ඇති අතර පන්ති වර්ග අතුරු මුහුණතේ SPOT ආකාරයකින් හසුරුවනු ලැබේ. මෙන්න දළ සටහනක් . සහයෝගිතාකරුවන් සාදරයෙන් පිළිගනී. පුස්තකාලය සඳහා සමහර කේත මෙහි ඇත. මෙය ක්‍රියාත්මක වෙමින් පවතී, වාෂ්ප මෘදුකාංග සඳහන් කිරීම ගැන සමාව ඉල්ලන්න. සිතුවිලි බෙදාගැනීම පමණි.
ෂෙල්බි මුවර් III

5

මෙහි උපාධිය ලබා ගැනීම අත්‍යවශ්‍ය බව පෙනේ: දේශපාලන විද්‍යාව පිළිබඳ ශාස්ත්‍රවේදී උපාධිය සහ පරිගණක විද්‍යාව පිළිබඳ උපාධිය.

කාරණයට:

මෙය මිනිසුන් ස්කලා වෙත පැමිණීම වළක්වනු ඇත්ද?

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

මෙම අධ්‍යාපනය තිබේ නම්, සෑම කෙනෙකුටම එය කළ හැකිය. පසුගිය වසරේ මම SCALA හි පාසල් ළමුන් සමූහයක් සමඟ චෙස් පරිගණකයක් සාදමි! ඔවුන්ට ඔවුන්ගේ ගැටළු තිබුණත් අවසානයේ ඔවුන් හොඳට කළා.

ඔබ ස්කාලාව වාණිජමය වශයෙන් භාවිතා කරන්නේ නම්, ඔබ මේ ගැන කරදර වෙනවාද? ඔබ වහාම 2.8 දරුකමට හදා ගැනීමට සැලසුම් කර තිබේද?

මම කරදර වෙන්නේ නැහැ.


4

මට ඔක්ස්ෆර්ඩ් වෙතින් ගණිත උපාධියක් ද ඇත! නව එකතු කිරීමේ දේවල් 'ලබා ගැනීමට' මට යම් කාලයක් ගත විය. නමුත් මම දැන් එයට ගොඩක් කැමතියි. ඇත්ත වශයෙන්ම, 'සිතියම' ටයිප් කිරීම 2.7 දී මට දෝෂාරෝපණය කළ පළමු විශාල දේවලින් එකකි (සමහර විට මම කළ පළමු දෙය එකතු කිරීමේ පන්ති වලින් එකක් විය.)

නව 2.8 එකතු කිරීම් පිළිබඳ මාටින්ගේ පත්‍රය කියවීම සැබවින්ම ඇඟවුම් භාවිතය පැහැදිලි කිරීමට උපකාරී විය, නමුත් ඔව්, ප්‍රලේඛන ඒපීඅයි වල ක්‍රම අත්සන තුළ විවිධ ආකාරයේ ඇඟවුම් වල භූමිකාව පැහැදිලි කිරීම සඳහා වඩා හොඳ කාර්යයක් කළ යුතුය.

මගේ ප්‍රධානතම කාරණය මෙයයි: 2.8 මුදා හැරෙන්නේ කවදාද? දෝෂ වාර්තා ඒ සඳහා පැමිණීම නතර කරන්නේ කවදාද? 2.8 සමඟ හපන්න පුළුවන් ප්‍රමාණයට වඩා පරිමාණ කණ්ඩායම සපා කෑවා / එකවර ඕනෑවට වඩා වෙනස් කිරීමට උත්සාහ කර තිබේද?

වෙනත් කිසිවක් එකතු කිරීමට පෙර 2.8 ස්ථාවර කිරීම සඳහා ප්‍රමුඛතාවයක් ලෙස දැකීමට මම කැමතියි, සහ පරිමාණ සම්පාදකයා සඳහා සංවර්ධන මාර්ග සිතියම කළමනාකරණය කරන ආකාරයට යම් යම් වැඩිදියුණු කිරීම් කළ හැකි නම් (පැත්තකින් සිට බලා සිටියදී) පුදුම වන්න.


0

භාවිත අඩවියේ ඇති වැරදි පණිවිඩ ගැන කුමක් කිව හැකිද?

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

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


නමුත් මූලික කරුණු වලින් එකක් වන්නේ පරිශීලකයාගේ සහ නිර්මාණකරුවන්ගේ දෘෂ්ටිකෝණයෙන් පුස්තකාලය අතර වෙනසයි . නිසැකවම නිර්මාණකරුවන්ට අවශ්‍ය භාෂා ලක්ෂණ පිළිබඳ ආකර්ෂණීය අවබෝධයක් අවශ්‍ය වේ (උදා: ඉහළ වර්ගයේ වර්ග, ව්‍යංග ප්‍රමුඛතාවය) - ප්‍රශ්නය: "පරිශීලකයින්ට අවශ්‍යද?"
oxbow_lakes
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.