1
Hardware / Re:Chtěli byste notebook s Nvidia N1X?
« kdy: Dnes v 07:17:28 »
Kedze som fanusik nVidia tak by som to skusil. Mam od nich dost vela veci.
Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.
open System
raise(Exception(message = "Klasicka .NET exception"))exception Chyba of string
raise(Chyba "Typovo cista F# exception")let (/) x y =
match y with
| 0 -> Error("Delenie nulou neni povolene")
| _ -> Ok (x / y)
Já jsem si koupil nový MacBook s M1, ale z toho systému bych se osypal, takže jsem jej dal na používání dětem, kteří si na tom pouští pohádky.
Problém není při práci v konzoli, ale to grafické prostředí je příliš jiné. Já jsem zvyknutý pracovat s i3wm a to tam nejde snadno zprovoznit a přehazovat se v oknech jak to dělají ostatní mi přijde jako krok zpět. Překvapivě mi i přišlo, že spousta věcí je složitější a nejsou tak elegantní jako v Linuxu. Např. repozitáře programů k instalaci nejsou úplné a je mnohem častěji potřeba instalovat stahováním někde z webových stránek.
Děti asi také půjdou brzy na Linux a ten notebook dám úplně pryč.
Jediná výhoda je kvalitní hardware, nízká spotřeba a dlouhá výdrž baterií. Ten systém ale není pro každého a hrozí, že když si něj zvyknete, nebudete se cítit doma zase třeba v Linuxu nebo Windows.
<img src="5b17f8185e71449983e3600a0c2d8527"><img src="5b17f8185e71449983e3600a0c2d8527.webp">no jazyk to podporuje, ale vyzerá, že editor nie (podporuje pri discriminated unions, ale už nie pri typoch funkcie čo je divná nekonzistencia):
Explicitně předat ty parametry nechcete? Takto:Kód: [Vybrat]let findUniqueName nameExists name = findUniqueName' 0 nameExists name
To je totiž jediné, kde mi IDE zachová i jejich jména. Nejspíš se oboje i trochu jinak překládá. A pak z pohledu typového systému to moje je hodnota (value) a to vaše ne (částečné aplikace funkcí nejsou hodnoty kvůli value restriction - nesmí se totiž generalizovat).
F# ma oproti OCAML taku vymoženosť, že si viem pomenovať typy parametrov aj vrámci typovej signatúry funkcie
No, v F# se to pojmenování na rozdíl od OCamlu snadno ztratí. Když použijete labelled parameter v OCamlu, tak argument musí být labelled (např. když deklaruji let rec range ~first:lo ~last:hi = ..., tak to musím volat range ~first:1 ~last:10 a nejde range 1 10)
Čekal bych, že když findUniqueSlug bude funkce, tak by to mohlo fungovat (ale AFAIK není to nic, co by bylo garantováno specifikací jazyka):Kód: [Vybrat]let findUniqueSlug slugExists slug = findUniqueName' 0 slugExists slug


type foo = bool -> bool
vs.
type foo = isEmpty:bool -> booltype Person =
| Man of name:string * age:int
| Woman of name:string * age:int * cupSize:CupSizemodule Name
let rec private findUniqueName' (index : int) (exists : string -> bool) (name : string) =
let newName = if index = 0 then name else $"{name}-{index}"
if exists(newName)
then name |> findUniqueName' (index + 1) exists
else newName
// typy explicitne netreba uvadzat ale chcem to mat pomenovane koli autocomplete:
let findUniqueName : nameExists:(string -> bool) -> name:string -> string = findUniqueName' 0
let rec private findUniqueSlug' (index : int) (slugExists : string -> bool) (name : string) =
name
|> _.ToSlug()
|> findUniqueName' 0 slugExists
let findUniqueSlug : slugExists:(string -> bool) -> slug:string -> string = findUniqueSlug' 0
Termín "module" už má v ECMAScript-e svoj význam a TypeScript ho len rešpektuje (t.j. ES6 prípadne CommojJS modules). Preto sa táto ďalšia/iná vlastnosť volá "namespace" a príde mi to ako technicky presné pomenovanie.CitaceKaždopádne v TS je modul synonimum pre namespace
Nie je, sú to dve odlišné veci. Možno ťa mýli, že pred dávnymi rokmi sa terminológia TypeScript-u trochu líšia, ale to je fakt dávno.Citacev iných jazykoch je NS čisto len menný priestor (C++, C#).
Takto ho vnímam aj v TypeScript-e.CitaceA modul je skutočne element jazyka, ktorý sa stará aj o viditelnosť (exporty) taktiež modul môže byť v jednom súbore len jeden zato namespace môže byť rozdelený do viac súborov.
Takto to v TypeScript-e je.
Ale možno mi len niečo uniká, namespaces vôbec nevyužívam.
Používá se kombinace join ... into a DefaultIfEmpty().
query {
for country in dc.Dbo.Countries do
where country.IsEnabled
join city in dc.Dbo.Cities on (country.Id = city.CountryId)
sortBy country.Name
thenBy city.Name
select (country.Id, country.Name, city.Id, city.Name, city.IsCapital)
}query {
for country in dc.Dbo.Countries do
where country.IsEnabled
leftOuterJoin city in dc.Dbo.Cities on (country.Id = city.CountryId) into cities'
for city' in cities'.DefaultIfEmpty() do
sortBy country.Name
thenBy city'.Name
select (country.Id, country.Name, city'.Id, city'.Name, city'.IsCapital)
}
System.Exception: 'unrecognised method call value(FSharp.Data.Sql.Runtime.QueryImplementation+SqlQueryable`1[FSharp.Data.Sql.Common.SqlEntity]).GroupJoin(value(FSharp.Data.Sql.Runtime.QueryImplementation+SqlQueryable`1[FSharp.Data.Sql.Common.SqlEntity]), country => country.GetColumn("Id"), city => city.GetColumn("CountryId"), (country, cities') => new AnonymousObject`2(Item1 = country, Item2 = cities'.DefaultIfEmpty()))'rc.conf je sh skript, loader.conf umí jen přiřazení hodnot se syntaxí kompatibilní se sh, jail.conf je interní formát jailu. Ke všem třem jsou manuálové stránky a ke všemu ve FreeBSD jsou zdrojáky.