Size: a a a

2020 November 10

nn

noname nobody in F# Chat
не придираюсь, просто пытался вспомнить, делегаты появились в net2 тогда же возникла проблема захвата переменной в циклах.
Вот такой код
               List<Action> actions = new List<Action>();
               for (int i = 0; i < 10; i++)
                   actions.Add(() => Console.WriteLine(i));
               actions.ForEach(f => f());
Ведет себя иначе чем:
> let funs = [for i in [1..10] -> fun () -> printfn "%A" i];;
> for f in funs do f();;
источник

A

Anatoly in F# Chat
noname nobody
не придираюсь, просто пытался вспомнить, делегаты появились в net2 тогда же возникла проблема захвата переменной в циклах.
Вот такой код
               List<Action> actions = new List<Action>();
               for (int i = 0; i < 10; i++)
                   actions.Add(() => Console.WriteLine(i));
               actions.ForEach(f => f());
Ведет себя иначе чем:
> let funs = [for i in [1..10] -> fun () -> printfn "%A" i];;
> for f in funs do f();;
Её потом чинили в 4м, ты в курсе?
источник

nn

noname nobody in F# Chat
Anatoly
Её потом чинили в 4м, ты в курсе?
А что конкретно? в моем коде C# напечатал 10 10 10 ... F# 1 2 3 ... C# net452
источник

A

Anatoly in F# Chat
noname nobody
А что конкретно? в моем коде C# напечатал 10 10 10 ... F# 1 2 3 ... C# net452
Версия сишарпа и версия фреймворка - разное
источник

nn

noname nobody in F# Chat
фреймворк net452
источник

RM

Roman Melnikov in F# Chat
noname nobody
фреймворк net452
Какой там язык?
источник

RM

Roman Melnikov in F# Chat
С# 3?
источник

nn

noname nobody in F# Chat
не ниже 7-го думаю
источник

RM

Roman Melnikov in F# Chat
noname nobody
не придираюсь, просто пытался вспомнить, делегаты появились в net2 тогда же возникла проблема захвата переменной в циклах.
Вот такой код
               List<Action> actions = new List<Action>();
               for (int i = 0; i < 10; i++)
                   actions.Add(() => Console.WriteLine(i));
               actions.ForEach(f => f());
Ведет себя иначе чем:
> let funs = [for i in [1..10] -> fun () -> printfn "%A" i];;
> for f in funs do f();;
Тут сишарпную часть починили с выходом .net 4 если не ошибаюсь
источник

RM

Roman Melnikov in F# Chat
noname nobody
не ниже 7-го думаю
Забавно
источник

VS

Vladimir Shchur in F# Chat
там точно больше четвёртого должно быть
источник

RM

Roman Melnikov in F# Chat
Anatoly
Её потом чинили в 4м, ты в курсе?
Мб у нас эффект Манделы какой-то срабатывает?
источник

g

gsomix in F# Chat
noname nobody
не придираюсь, просто пытался вспомнить, делегаты появились в net2 тогда же возникла проблема захвата переменной в циклах.
Вот такой код
               List<Action> actions = new List<Action>();
               for (int i = 0; i < 10; i++)
                   actions.Add(() => Console.WriteLine(i));
               actions.ForEach(f => f());
Ведет себя иначе чем:
> let funs = [for i in [1..10] -> fun () -> printfn "%A" i];;
> for f in funs do f();;
Ты написал разный код и получил отличающиеся результаты. 🤷‍♂️
источник

nn

noname nobody in F# Chat
Vladimir Shchur
там точно больше четвёртого должно быть
.NET Framework   all   C# 7.3
источник

g

gsomix in F# Chat
gsomix
Ты написал разный код и получил отличающиеся результаты. 🤷‍♂️
Циклы for и foreach в данной ситуации ведут себя по разному. Поведение foreach менялось в C#5.
источник

g

gsomix in F# Chat
noname Если ты в F# напишешь полноценный аналог сишарпного цикла for с инициализацией, условием, итерацией и телом, то все встанет на свои места.
источник

nn

noname nobody in F# Chat
дошло кажись, спасибо
источник

g

gsomix in F# Chat
Хорошо, а то мне еще гайки крутить сегодня. :)
источник

Dv

Dr. Friedrich von Ne... in F# Chat
Anatoly
Её потом чинили в 4м, ты в курсе?
Чинили для foreach.
источник

AH

Ayrat Hudaygulov in F# Chat
Да, тут версия компилятора сишарпа вроде важна, а не рантайма, не?
источник