kouzdra - September 24th, 2014
[Recent Entries][Archive][Friends][User Info]
04:58 am
[Link] |
Интересно, битва за урожай - это тоже война? http://korrespondent.net/ukraine/3422904-v-ukrayne-vvodytsia-trudovaia-povynnost-dlia-prynudytelnoho-vypolnenyia-rabot-oboronnoho-kharaktera Министерство социальной политики расширяет список лиц, подлежащих трудовой повинности, сообщила глава ведомства Людмила Денисова, говорится на сайте правительства Украины. ... Среди категории лиц, которых могут без обязательного согласия "призвать" к общественно-полезным работам, следующие: - безработные и другие незанятые лица [прозреваю дальнейшее резкое снижение безработицы - вовсе не потому, кстати, что все пойдут "строить блокпосты"] ... - студенты вузов, ученики и слушатели профессионально-технических учебных заведений; - лица, обеспечивающие себя работой самостоятельно. ...
PS: Вот мне интересно - кажется UA последовательно занята реализацией всех без исключения страхов наших либералов по поводу "возвращения совка" - но поскольку "этот совок - тот для кого надо совок", им это никак не мешает нежно любить "страну свабоды"
|
|
08:31 pm
[Link] |
"Евреи - не жалейте заварки!" Как известно, в .NET-e такой код прекрасно работает:
using System;
namespace Vars {
class Vars {
public static void For (int l, int u, Action proc) {
for (int i = l; i < u; ++ i)
proc (i);
}
public static void Main (string[] args) {
var s = 0;
For (1, 10, (i) => { s += i; });
Console.WriteLine ("N={0}", s);
}
}
} Также известно, что мелкомягкие скоммуниздили из Паскаля Var-параметры (ref и out), что позволило им (как собственно и Вирту) решить проблему безопасной передачи переменных по ссылке: указатели типа С увы страдают тем, что их можно присвоить переменной с временем жизни большим чем запись активации функции, где эта переменная находится - и здравствую висячая ссылки и segfault.
Var-ссылки этим недостатком не страдают потому как их время жизни гарантировано меньше.
Умный Вирт однако понимал, что процедурные параметры тоже нужны и сделал еще аналогичный спецификатор для параметров процедур. Чего мелкомягкие не скоммуниздили - и закономерно огребли:
Вот такое уже не работает:
public static void SumNat (int to, ref int s) {
For (1, to, (i) => { s += i; });
}
public static void Main (string[] args) {
var s = 0;
SumNat (10, ref s);
Console.WriteLine ("N={0}", s);
}
Говорит:
Error CS1628: Parameter `s' cannot be used inside `lambda expression' when using `ref' or `out' modifier (CS1628) (Vars)
А такое разумеется фиксит:
public static void SumNat (int to, ref int s) {
var ss = s;
For (1, to, (i) => { ss += i; });
s = ss;
}
Природа явления imho вполне понятна (если кому-то непонятна - пишите - поясню), но вот стандартные же грабли - сделать "ограниченный" спецификатор для параметра-указателя на переменную и не сделать того же самого для параметра-функции....
В общем - subj.
|
|