Size: a a a

2021 February 25

AT

Anton Ternavsky in F# Chat
(fun () -> ())
та поколдуют с окраской, думаю несложно
Ну хз сколько колдовать будут-я различие между статическими и обычными свойствами разными шрифтами(bold и обычный) в Rider ждал 2 года 😂
источник

VL

Vladimir Lozhnikov in F# Chat
привет

имеется следующий кот


open System

[<EntryPoint>]
let main argv =

   let n = Console.ReadLine()
   let input = Console.ReadLine().Split(" ") |> Array.map (int)

   let result = input
                |> Array.mapi (fun i v ->
                                   let f = Array.fold (fun (acc: int*int) elem -> // acc = (a, preElem)
                                               if elem - (snd acc) <= 1 then (fst acc + 1, elem)
                                               else acc) (0, 0)
                                   f
                )

   printf "%A" result

   0 // return an integer exit code


на входе передаю следующие параметры


6
4 6 5 3 3 1


result по задумке должен иметь тип массива кортежей (int, int). вместо этого result имеет тип

val result : (int [] -> int * int) []

то есть это получается массив функций, которые даже не запускаются

как можно пофиксить?
источник

AT

Anton Ternavsky in F# Chat
В любом случае думаю это не будет ломающим изменением, а значит fun останется и этого достаточно :)
источник

((

(fun () -> ()) in F# Chat
Kir
Хм, могу сделать вот так, но оператор будет прибит к грамматике
let x = \p ->
 let y = foo bar <| \s -> s;
 let z = y;
 z p;
x
только не точка с запятой, лучше уж скобки
источник

AT

Anton Ternavsky in F# Chat
(fun () -> ())
только не точка с запятой, лучше уж скобки
+1, лесом точки с запятой, мусорные символы
источник

K

Kir in F# Chat
У меня есть правило let Name = Struct ; Struct, я это как раз добавил, чтобы из
let x =
 1 + 2 + 2;

делать
let x =
 let four = 2 + 2;
 1 + four;

за один шаг, и я их хочу после лексера автоматически расставлять
источник

R

Roman in F# Chat
Vlad Zaa
Серьезный вопрос - почему хочется отсутствия 'fun' в лямбде в фш? Что это упростит?
Вербозно получается для коротких случаев. Но, думаю, когда сделают синтаксис #.Name или как там его, проблема исчезнет
источник

K

Kir in F# Chat
Roman
Вербозно получается для коротких случаев. Но, думаю, когда сделают синтаксис #.Name или как там его, проблема исчезнет
Для аццессоров?
источник

AH

Ayrat Hudaygulov in F# Chat
Vladimir Lozhnikov
привет

имеется следующий кот


open System

[<EntryPoint>]
let main argv =

   let n = Console.ReadLine()
   let input = Console.ReadLine().Split(" ") |> Array.map (int)

   let result = input
                |> Array.mapi (fun i v ->
                                   let f = Array.fold (fun (acc: int*int) elem -> // acc = (a, preElem)
                                               if elem - (snd acc) <= 1 then (fst acc + 1, elem)
                                               else acc) (0, 0)
                                   f
                )

   printf "%A" result

   0 // return an integer exit code


на входе передаю следующие параметры


6
4 6 5 3 3 1


result по задумке должен иметь тип массива кортежей (int, int). вместо этого result имеет тип

val result : (int [] -> int * int) []

то есть это получается массив функций, которые даже не запускаются

как можно пофиксить?
@vshapenko твой ученик? отступы как у мастера!
источник

((

(fun () -> ()) in F# Chat
Kir
У меня есть правило let Name = Struct ; Struct, я это как раз добавил, чтобы из
let x =
 1 + 2 + 2;

делать
let x =
 let four = 2 + 2;
 1 + four;

за один шаг, и я их хочу после лексера автоматически расставлять
а что даёт такое преобразование?
источник

R

Roman in F# Chat
Kir
Для аццессоров?
Array.map (fun x -> x.Id) => Array.map (#.Id)
источник

K

Kir in F# Chat
(fun () -> ())
а что даёт такое преобразование?
При вычленении компонентов. Я ; вместо in использую.
источник

K

Kir in F# Chat
Roman
Array.map (fun x -> x.Id) => Array.map (#.Id)
А композицию и присваивание по ним добавят?
источник

R

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

K

Kir in F# Chat
#.foo.bar для доступа глубже, { with foo.bar = 42 } для записи
источник

VS

Vasily Shapenko in F# Chat
Ayrat Hudaygulov
@vshapenko твой ученик? отступы как у мастера!
Не знаю такого
источник

((

(fun () -> ()) in F# Chat
а по идее #.User >> #.Name сработает же?
источник

R

Roman in F# Chat
Kir
#.foo.bar для доступа глубже, { with foo.bar = 42 } для записи
# будет просто синтаксическим сахаром. Не вижу причин, почему вложенность бы не работала. А вложенные проперти у рекордов — это совсем другое дело
источник

VL

Vladimir Lozhnikov in F# Chat
ай елы, нашел проблему
источник

МП

Миша Проказин... in F# Chat
Ayrat Hudaygulov
а вот эта стрелочка -> в сишарпе уже  пользуется
Это где?
источник