Size: a a a

2021 January 08

I

Igor in F# Chat
IdiocyAcceptance
Но лукап таблица - полюбому
Ну я попробую для интереса
источник

NK

ID:0 in F# Chat
источник

I

Igor in F# Chat
IdiocyAcceptance
Но лукап таблица - полюбому
А какое дорогое вычисление должно сэкономиться? hexToDec и так простое как 3 копейки (я кстати немного переставил местами и стало чуть быстрее)
источник

I

IdiocyAcceptance in F# Chat
Igor
А какое дорогое вычисление должно сэкономиться? hexToDec и так простое как 3 копейки (я кстати немного переставил местами и стало чуть быстрее)
if else должен
источник

VK

Viacheslav Koryagin in F# Chat
Ты вызываешь неправильно, там спец синтакс:
let mutable enumerator = ( ^Enumerable : (member GetEnumerator : unit -> ^Enumerator) enumerable)
источник

I

IdiocyAcceptance in F# Chat
Viacheslav Koryagin
Ты вызываешь неправильно, там спец синтакс:
let mutable enumerator = ( ^Enumerable : (member GetEnumerator : unit -> ^Enumerator) enumerable)
Мм. На том же скрине чуть ниже "как надо", если что) Я говорю что *жаль что так нельзя*
источник

AH

Ayrat Hudaygulov in F# Chat
IdiocyAcceptance
Мм. На том же скрине чуть ниже "как надо", если что) Я говорю что *жаль что так нельзя*
нам нужно dynamic SRTP
источник

AH

Ayrat Hudaygulov in F# Chat
чтобы на лету выводил ограничения на мемберы
источник

VK

Viacheslav Koryagin in F# Chat
IdiocyAcceptance
Мм. На том же скрине чуть ниже "как надо", если что) Я говорю что *жаль что так нельзя*
А, не понял запрос значит))
источник

VS

Vladimir Shchur in F# Chat
Ayrat Hudaygulov
нам нужно dynamic SRTP
👍 только назвать flexible SRTP по аналоги с flexible types
источник

I

IdiocyAcceptance in F# Chat
Ayrat Hudaygulov
чтобы на лету выводил ограничения на мемберы
Ну я думаю что всё равно будут некоторые ограничения. Кое-где но придётся указывать типы и прочее
источник

VK

Viacheslav Koryagin in F# Chat
Vladimir Shchur
👍 только назвать flexible SRTP по аналоги с flexible types
Кстати, да, а то получиться dynamic statically resolved type parameters))
источник

I

IdiocyAcceptance in F# Chat
Но в целом возможность указать шейп была бы уже отличной. Надеюсь что боги рантайма и сишорпа нам их пошлют
источник

I

IdiocyAcceptance in F# Chat
Ну и пару человек в команду F# заодно
источник

I

IdiocyAcceptance in F# Chat
Чтобы переписали на Roslyn 🌚
источник

I

IdiocyAcceptance in F# Chat
Phillip Carter конечно писал, что так никто делать не будет, ибо слишком затратно, но не помечтать грех
источник

I

Igor in F# Chat
IdiocyAcceptance
if else должен
ну в общем у меня не вышло, стало раза в 2 медленнее
источник

I

IdiocyAcceptance in F# Chat
Хм
источник

ЕБ

Евгений Бурмистров... in F# Chat
здравствуйте. есть у меня такой кусочек:

    let getValue key =
       async {
           let value = getCacheValue key
           match value with
           | Some v -> return Some v
           | None ->
               let! newValue = fetchValue key
               match newValue with
               | None -> return None
               | Some nv ->
                   setCacheValue key nv |> ignore
                   return Some nv
       }
вопроса два
- можно ли переписать на всякие Option.orElse и Option.bind? я внутри CE спотыкаюсь об return'ы
- нужно ли? или как есть паттерн матчингом лучше\красивее\понятнее
источник

AK

Aleksandr Kazantsev in F# Chat
Евгений Бурмистров
здравствуйте. есть у меня такой кусочек:

    let getValue key =
       async {
           let value = getCacheValue key
           match value with
           | Some v -> return Some v
           | None ->
               let! newValue = fetchValue key
               match newValue with
               | None -> return None
               | Some nv ->
                   setCacheValue key nv |> ignore
                   return Some nv
       }
вопроса два
- можно ли переписать на всякие Option.orElse и Option.bind? я внутри CE спотыкаюсь об return'ы
- нужно ли? или как есть паттерн матчингом лучше\красивее\понятнее
не знаю , насколько понятнее , но вот вариант :
 
getCacheValue key
|> Option.orElseWith ( fun _  ->
     async {
           let! newValue = fetchValue key
           newValue |>  Option.iter (setCacheValue key)
           return newValue
     } |> Async.RunSynchronously
)
источник