169 похожих чатов

А можно добиться того же самого, но чтоб не через

жопу?

[<AutoOpen>]
module Append2
=
type Append2
=
Append2
with
static member inline (?<-) ( lst : 'a array
, _Blank : Append2
, _ : 'a array )
=
fun fst -> Array.append fst lst : 'a array

static member inline (?<-) ( lst : 'a list
, _Blank : Append2
, _ : 'a list )
=
fun fst -> List.append fst lst : 'a list

let inline Append2 (fst :'a) lst :'a
=
(lst ? (Append2) <- Unchecked.defaultof<'a>) fst

Append2 [1..3] [27..30]
|> printfn "%A"
//=> [1; 2; 3; 27; 28; 29; 30]

Append2 [|1..3|] [|27..30|]
|> printfn "%A"
//=> [|1; 2; 3; 27; 28; 29; 30|]


https://sharplab.io/#v2:DYLgZgzgNALiBOBXAdlAJiA1AHwNoB4BBRGAewHkAHAU2QD4BdAWACgBbUtRYagAl8KUayNACZWAXlb8YATxr9BwsdP5r+UluvVLaKrdv4B3AJYwAFqsMQYAQxgmAxvzbU2AI2rx+J5MF98ABQA/PgAtACU/IFqwDbqILwA5La8tvDwtrJWhrl5+blQvAD6AELAtsgA1ryJAkJ64gYFLa3aRcWGiSlpGVn8ETmtErxDLWAovJAwvGF0An2yAHS2DSJT8XEztcmp6ZnZzW2jR+o29k4ubp7evL7+yEGhkdGx8Wrdqf42Y8d/7SVypUanVdCImv9IYUSl1drxvtteINTi0Rr98hNkBsZnNeAAZEw2FZrND8abw96feGEmCqVQ8RH3AKKEmiXiBckgFJRLa1FLovKaf6BXnBdlgsRRcK8ACqyEc5mojiq1DQSzQ1DAtm4ZDA+BSdCi01YrAlbNwAEYlksAMwMXi4UQAdmtNoADMwWNh5rxKPBfDAwFiAEQAUkIwdYAHooxJ5paANy8URJm1J53pgAc6YAnKmPSaWGaHdgrbbsPbcNhna63RXWN7+H6A0HeGGI9HY/HS+nU+mnVnc/mK0A==

5 ответов

30 просмотров

Нажми «отформатировать код» пож 🌚

dd- Автор вопроса
dd- Автор вопроса
Alex Berezhnykh
Нажми «отформатировать код» пож 🌚

[<AutoOpen>] module Append2 = type Append2 = Append2 with static member inline (?<-)(lst: 'a array, _Blank: Append2, _: 'a array) = fun fst -> Array.append fst lst: 'a array static member inline (?<-)(lst: 'a list, _Blank: Append2, _: 'a list) = fun fst -> List.append fst lst: 'a list let inline Append2 (fst: 'a) lst : 'a = (lst?(Append2) <- Unchecked.defaultof<'a>) fst Append2 [ 1..3 ] [ 27..30 ] |> printfn "%A" //=> [1; 2; 3; 27; 28; 29; 30] Append2 [| 1..3 |] [| 27..30 |] |> printfn "%A" //=> [|1; 2; 3; 27; 28; 29; 30|] https://sharplab.io/#v2:DYLgZgzgNALiBOBXAdlAJiA1AHwNoB4BBRGAewHkAHAU2QD4BdAWACgBbUtRYagAkMo1kaAEy8AvK17TeMAJ41+g2qIlKhoqTO0B3AJYwAFqy3azvCDACGMPQGNebamwBG1eLz3JgXvgAoAfnwAWgBKP2BLEF4AciteK3h4KzkoXgB9ACFgK2QAa2iBDRE09Oi4hKSU0IlTc3qwFF5IGF5gun4quQA6K2VhZsteSLhY+MTkuRMWerNLG3tHZzcPLx9kfyCwiKix4b1LUuzcgvUVEozy+J9LGskZ2YamlraOgBkDmF7+tEHWkau+0s020PFaa18Z2EYj8LSuNRGvEB91mOxgAT8RXONRCvAAqsg7IZqHY8tQ0N00NQwFZuGQwPg4nQai1pljobxcLwAIzdboAZl4DE5vBEAHY+fyAAxC3jYDqUeBeGBgZC8ABEAFJCOrWAB6PXiDq4bkAblF5v55vF1oAHNaAJyWqXMFisdmqXDYHmSuXCr2iiUCmXYYXy3iK5WqjXa3UsA1GznYM0W3hWwN2x3O0OsIA

dd- Автор вопроса
dd
[<AutoOpen>] module Append2 = type Append2 = A...

я не знаю как такое читать если честно (мазохизм какой-то)

dd- Автор вопроса
dd
[<AutoOpen>] module Append2 = type Append2 = A...

а оно ещё и вот так работает: [<AutoOpen>] module Append2 = type Append2 = Append2 with static member inline (?<-)(lst: 'a array, _Blank: Append2, _: 'a array) = fun fst -> Array.append fst lst: 'a array static member inline (?<-)(lst: 'a list, _Blank: Append2, _: 'a list) = fun fst -> List.append fst lst: 'a list let inline Append2 fst lst = (lst?(Append2) <- Unchecked.defaultof<'a>) fst Append2 [ 1..3 ] [ 27..30 ] |> printfn "%A" //=> [1; 2; 3; 27; 28; 29; 30] Append2 [| 1..3 |] [| 27..30 |] |> printfn "%A" //=> [|1; 2; 3; 27; 28; 29; 30|]

Похожие вопросы

Обсуждают сегодня

кому не сложно распишите пожалуйста для какой цели тут вот эти скобки и в них пихается указатель?
Михаил Helper
15
Комрады, посоветуйте, куда копать? Стал прикручивать кастомизацию тем. В OnShow главной главной формы пытаюсь загрузить из файла настроек и применить тему (на скрине, как долж...
Ed Doc
13
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Такс, блин, таки кто-то знает, каким образом работают макросы stdin/stdout/stderr? Я влез в stdio.h, там определения нет, отладил через асмокод - вызывается функция со странны...
The Bird of Hermes
18
OnShow один раз вызывается? или возможен Hide?
Iluha Companets
14
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Если у меня есть такой класс: Object = {} function Object:new(a_name, a_transform, a_color, a_mesh, a_material, a_shader, a_textures) local private = {} private.n...
Cuarno Vile
4
Всем привет, на линуксе лучше на fasm или nasm учиться писать для начала ?
meszjol
14
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
зачем же переименовывать ? чтобы кол-во участников возросло или вдруг IBM от этого снова на свифте начнет кодить ? Я не понимаю что страшного в том что свифт гавно, если это т...
Oleh Nerzh
10
Карта сайта