ToCode
Kanalga Telegramโda oโtish
ืืืคืื ืงืฆืจืื ืืืชืื ืชืื ืืืช ืื ืื ืคืจืง
Ko'proq ko'rsatish1 420
Obunachilar
+124 soatlar
+17 kunlar
-430 kunlar
Postlar arxiv
1 420
ืืืจืื Next.JS - ืคืจืง 1 ืืชืงื ื ืืคืจืืืงื ืจืืฉืื
ืืฉืืืข ืืืืื ืืฆื ืืคืืจื ืืื ืืื ืื ืืืฉืืืจ ืืช ืชืืืช ืืืืื ืฉืืื ืจืืงื ืืื ืืฉืื ืืืืื ืืชืงืืคื ืืืจืื next.js ืฉืืชืืชื ืืจืืฉ. ืืงืืื ืฉืชืืฆืื ืืืชื ืืืขืื ืื ืืืืจ ืืืจื ืื ืืื ืืืืืืช ืืืืืฉืื.
ืืื Next.JS
ื ืงืกื ื'ืื ืืก ืืื ืกืืืื ืืคืืชืื ืืืฉืืื Full Stack ืืืืกืกืช ืจืืืงื, ืืืืคืฉืจืช ืื ื ืืคืจืืืงื ืืื ืืืชืื ืื ืืช ืงืื ืฆื ืืฉืจืช ืืื ืืช ืงืื ืฆื ืืืงืื. ืืืืฉ ืฉื ืืคืจืืืืืืจืง ืืื ืขื ืงืืืช ืื ืืืช ืคืจืืืงื ืืืื ืืืจืฆืื ืืืงื ืืื ืงืื ืฆื ืฉืจืช ืืงืื ืฆื ืืงืื, ืื ืฉืืืคื ืืืชื ืืืืืจื ืืืื ืงืื ืืคืจืืืงืื ืจืืืงื ืืืฉืื. ืืืชืจ ืืื, next.js ื ืืฆืจ ืขื ืืื ืืืจืช vercel ืืืฉ ืื ืืื ืืืืืืื ื deployment ืขื ืืขื ื ืฉืืื, ืื ืฉืืคืฉืจ ืืืืื ืืช ืืคืจืืืงื ืืืืื ืช ืืคืืชืื ืืืื ืืจื ื ืืืื ืืงืืช.
ืคืจืืืงื ืจืืฉืื
ืืฉืืื ืืืฆืืจ ืคืจืืืงื next.js ืจืืฉืื ืื ื ืฆืจืื ืจืง ืืืชืงืื ืืช node.js ืืื ืืืคืขืื ืืช ืืคืงืืื:
npx create-next-app@latest 01-intro
ืืืขื ืืช ืขื ืืกืคืจ ืฉืืืืช (ืื ื ืืืจืชื ืืืืื ืืช ืืจืืจืืช ืืืืื). ืื ืืฉืืขืืชืืช ืืืชืจ ืืืืจ ืืงื ืืืืงืื ืงืื ืคืืืืจืฆืืืช ืืืืคืืง ืืขืฆืื ื ืืื ืืคืืื ืืืชืจ ืงื ืืืฆืืจืช ืคืจืืืงื ืขื vite. ืืืจื ืืฆืืจืช ืืคืจืืืงื ืืคืฉืจ ืืคืชืื ืฉืจืช ืืคืืชืื ืืงืืื ืขื ืืื:
cd 01-intro
npm run dev
ืคืชืืืช ืืคืจืืืงื ืฉื ืืฆืจ ืืกืืืืช ืคืืชืื ืชืจืื ืื ื ืฉืืฉ ืืกื ืืื ืฉื ื ืงืืฆืื ืืขื ืืื ืื ืืื ืชืืื ืืชืืงืืืช app, ืืจืืฉืื ื ืงืจื layout.tsx ืืืฉื ื ื ืงืจื page.tsx. ื layout ืื ื ืืืฆื ืืช ืืงืื ืืื:
import type { Metadata } from 'next'
import { Inter } from 'next/font/google'
import './globals.css'
const inter = Inter({ subsets: ['latin'] })
export const metadata: Metadata = {
title: 'Create Next App',
description: 'Generated by create next app',
}
export default function RootLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<html lang="en">
<body className={inter.className}>{children}</body>
</html>
)
}
ืื page.tsx ืืช ืืงืื ืืื:
import Image from 'next/image'
export default function Home() {
return (
<main className="flex min-h-screen flex-col items-center justify-between p-24">
<div className="z-10 max-w-5xl w-full items-center justify-between font-mono text-sm lg:flex">
<p className="fixed left-0 top-0 flex w-full justify-center border-b border-gray-300 bg-gradient-to-b from-zinc-200 pb-6 pt-8 backdrop-blur-2xl dark:border-neutral-800 dark:bg-zinc-800/30 dark:from-inherit lg:static lg:w-auto lg:rounded-xl lg:border lg:bg-gray-200 lg:p-4 lg:dark:bg-zinc-800/30">
Get started by editing
<code className="font-mono font-bold">src/app/page.tsx</code>
</p>
<div className="fixed bottom-0 left-0 flex h-48 w-full items-end justify-center bg-gradient-to-t from-white via-white dark:from-black dark:via-black lg:static lg:h-auto lg:w-auto lg:bg-none">
<a
className="pointer-events-none flex place-items-center gap-2 p-8 lg:pointer-events-auto lg:p-0"
href="https://vercel.com?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app"
target="_blank"
rel="noopener noreferrer"
>
By{' '}
<Image
src="/vercel.svg"
alt="Vercel Logo"
className="dark:invert"
width={100}
height={24}
priority
/>
</a>
</div>
</div>
<div className="relative flex place-items-center before:absolute before:h-[300px] before:w-[480px] before:-translate-x-1/2 before:rounded-full before:bg-gradient-radial before:from-white before:to-transparent before:blur-2xl before:content-[''] after:absolute after:-z-20 after:h-[180px] after:w-[240px] after:translate-x-1/3 after:bg-gradient-conic after:from-sky-200 after:via-blue-200 after:blur-2xl after:content-[''] before:dark:bg-gradient-to-br before:dark:from-transparent before:dark:to-blue-700 before:dark:opacity-10 after:dark:from-sky-900 after:dark:via-[#0141ff] after:dark:opacity-40 before:lg:h-[360px] z-[-1]">
<Image
className="relative dark:drop-shadow-[0_0_0.3rem_#ffffff70] dark:invert"1 420
ืืืืช ืืจืืืื - Coalesce
ืืงืื ืืื ืืื ืืืืจ ืืืืืง ืื ืงืืื ืืจืงืืงืก ืขื ืืขืจื bob ืืืืคืืื name, ืืื ืื ืงืืื ืืืฆืืจ ืืืฉ, ืืื ืืื ืื ืขืืฉื ืืืืืง ืืช ืื ืฉืจืฆืื ื. ืื ืขืืฉื ืืงืื, ืื ืืืขืื ืืืื ื ืชืงื ืืืชื?
g
.V()
.coalesce(
__.has('person', 'name', 'bob'),
__.addV('person').property('name', 'bob')
)
.iterate()
ืืืขืื ืืงืื
ืืคืงืืื coalesce ืฉื ืืจืืืื ืืงืืืช ืืกืคืจ ืืคืฉืจืืืืช ืืืชืงืืืืช ืืืจืฃ ืืืืฆืขืช ืืืชื ืืคื ืืกืืจ ืขื ืฉืืืืขื ืืืคืฉืจืืช ืฉืืืืืจื ืฆืืืช ืชืงืื. ืืื ืืืืืจื ืืงืื ืืื ืืืืจ ืืืชืืื ืืื ืืฆืืชืื ืืืจืฃ, ืืืฆืื ืฆืืืช ืฉืืฉ ืื ืืช ืืืืคืืื name ืขื ืืขืจื bob, ืื ืงืืื ืืืืืืจ ืืืชื ืืื ืื ืงืืื ืืืืืข ื addV. ืืื ืื ืืื ืื ืขืืื.
ืืืขืื ืืงืื ืืื ืฉ coalesce ืืืคืืข ืืืจื V() ืืืื ืืื ืืืคืขื ืขื ืื ืืฆืืชืื ืืืจืฃ, ืืืืืจ ืืื ืฆืืืช ื ืืืืง ืื ืคืจื ืื ืืื ืืชืืื ื has ืืื ืื ื ื ืกื ืืืืกืืฃ ืฆืืืช ืืื ืขื addV, ืื ืฉืืืจืื ืืืืกืคื ืฉื ืืืื ืฆืืชืื. ืืืืืช ืืจืฆื ืืกืงืืื ืขื ืืงืื ืืื:
@main def main() =
val graph = TinkerGraph.open
val g = traversal.withEmbedded(graph)
println(g.addV("person").property("name", "a").next())
println(g.addV("person").property("name", "b").next())
println("--- 1")
println(g.V().elementMap().toList)
g.V()
.coalesce(
has("person", "name", "bob"),
addV("person").property("name", "bob"))
.iterate()
println("--- 2")
println(g.V().elementMap().toList)
ืืืคืืกื ืืช ืืคืื:
--- 1
[{id=0, label=person, name=a}, {id=2, label=person, name=b}]
--- 2
[{id=0, label=person, name=a}, {id=2, label=person, name=b}, {id=4, label=person, name=bob}, {id=6, label=person, name=bob}]
ืืืืืจ ื ืืฆืจื ืฉื ื ืฆืืชืื ืืืฉืื ืขื ืืฉื bob.
ืคืืชืจืื ืืขืืจืช fold
ืืื ืืชืงื ืื? ืืื ืคืฉืื ืื ืงืืื ืืืคืฉ ืืช ืืฆืืืช ืืื ืขืืื ืืืคืขืื ืืช coalesce. ืืืขืื ืืื ืฉื ืืกืืื ืืื ืขืืื ืืืืืฉื ืื ืืฆืืืช ืื ืงืืื ืืืขืฆืืจ ืืช ืื ืืฉืืืืชื. ืืื ืืฉ ืืืืกืืฃ ืฆืขื fold ืฉืืืกืฃ ืืช ืื ืืฆืืชืื ืืืชืืืืื ืืจืฉืืื ืืืคืชืื ืืช ืืืชื ืจืฉืืื ืืชืื ื coalesce. ืื ืืงืืฆืืจ ืืงืื:
@main def main() =
val graph = TinkerGraph.open
val g = traversal.withEmbedded(graph)
println(g.addV("person").property("name", "a").next())
println(g.addV("person").property("name", "b").next())
println("--- 1")
println(g.V().elementMap().toList)
g.V()
.has("person", "name", "bob")
.fold()
.coalesce(
unfold(),
addV("person").property("name", "bob"))
.iterate()
println("--- 2")
println(g.V().elementMap().toList)
ืื ืฉืืืฆืจ ืจืง ืฆืืืช ืืื ืขื ืืฉื bob.
ืคืืชืจืื ืืขืืจืช merge
ืืืืจืกืืืช ืืกืคืืง ืืืฉืืช ืฉื ืืื ืงืจืคืืค ืืคืฉืจ ืืืฉืชืืฉ ื merge ืืื ืืืกืื ืืช ืื ืืืืืื ืืื ืืฉืื ืื ื ืื ืกืื ืืืื ืฆืืืช ืืคื ืืืคืืื ืืื name. ืืงืื ื ืจืื ืืื:
g.mergeV(Map[Object, Object](
T.label -> "person",
"name" -> "bob"
).asJava)
.iterate()
ืื ืขืื ืืืืืื ืืื ืืคื ืืืคืืื ืื ืฉืื ืื ื ืืืืจืื ืื ืืืื ืืคืืชืจืื ืืื ืืื. ืืฉืฆืจืื ืืืื ืืคื ืืืกืื ืืฆืืชืื ืืืจืื (ืืืืืื ืื ืงืืื ืฆืืืช person ืฉืืื friend ืฉื bob) ืื ื ืฆืืจื ืืืืืจ ืืืจืืง ืฉื ื coalesce ืื fold.1 420
ืชืืงืื ืื ืงืืื, ืชืืงืื ืื ืงืฉืื ืืืืืงืืช
ืืคืจืืืงื Node.JS ืฉืขืืืชื ืขืืื ืืฆืืชื ืืช ืืฉืืจื ืืืืช:
const [host, port] = address.split(':');
ืืืืฉืืื ืืืชื ืืืืกืืฃ ืคืืจื ืืจืืจืช ืืืื, ืื ืฉืื ืืืชืืืช ืื ืืกืชืืืืช ืื ืงืืืืชืืื ืืืกืคืจ ื ืฉืชืืฉ ืืืจืืจืช ืืืืื 8080.
ืืชืืงืื ืืงื ืืื ืืกื ืืื:
const [host, port = '8080'] = address.split(':');
ืืชืืงืื ืืงืฉื ืืื ืืืชืืืื ืขื ืื ืฉืืจ ืืืืจืื ืฉืืฉืชืืฉืื ืืืื ืืืื ืืก ืืชืื address, ืืืฉื ืืืืื ืฉืืฉืชืืฉืื ืืืืืื ืืืชืื http ืืืชืืื, ืืืืกืืฃ ื ืชืื, ืืืขืืช ืืฉื ืฉื ื host, ืืืชืื ืืชืืืช IP ืื ืชืงืื ื ืื ืืืืืื ืืขืืืืช ืืืจืืช ืืกืื ืื. ืงืื ืืื ืฆืจืื ืืืคืจืื ืืื ืืื ืื ืื ืฉืืคืขื ื ืืช ืืงืื ืืื ืื ืื ืฉืขืืฉื ืืฉืื ืขื ืืงืื ืืืคืืขื ื, ืืืืคืฉืจ ืืื ืืื ืืฉื ื ืืื ืื ืื ืื ืืืืื ืฉืืืืืช ืืฆืืจื ืฉืชืชืืื ืืื ืืื ืืืฉืชืืฉ. ืฉืื ืื ืืื ืืื ืงืฉื ืื ืืฉืืจื ืืืชื ืงืืืจื ืืคืื ืงืฆืื ืฉื ืขืฉืจืืช ืฉืืจืืช ืืืื ืื ืื ืื ืืื ืืขืืจืืืื ืืื.
ืืฉืืฉ ืกื ืืืืงืืช ืืื ืื ืื ื ืืจืืืฉืื ืื ืื ืืืฆืข ืื ืชืืงืื ืื ืงืฉืื, ืืคืืื ืืืื ืฉืืืจืฉืื ืจืืคืงืืืจืื ื ืืฉืืขืืชื.
ืืฆืขืจื ื ืืจืื ืืืขืจืืืช ืืฉืืื ืื ืื ืื ืืฉืื ืื ืืงืื ืืขืืจืืืื ืืื, ืื ืื ืืื ืขื ืื ืฉืืืขืจืืช ืืื ืืืืงืืช ืืืฉ ืืืื ืืงืจื ืงืฆื ืื ืืชืืขืืื, ืื ืฉืืชืืงืื ืืงืฉื ื ืจืื ืืืขื ืืืชื ืืคืฉืจื.
ืื ืฉืืื ืืืืืจ ืฉืืชืืงืื ืืงืฉื ืื ืืืื ืืชืืงืื ืืงืฉื ืืืืจืื ืืงืื. ืื ืืื ืืืช ืื ืื ื ืืงืืืื ืืืืื ืืช ืืืฆืข ืืืชื, ืืืื ืื ืฆื ืืืชื ืืื ืืืชืื ืกื ืืืืงืืช ืขืืืจ ืืชืืงืื ืืงืฉื ืืื.1 420
ืืืค ืกืงืืื: ืืืืจืช ืชืืฆืื ืขืชืืืืช
ืืื ืื ืื ืืืืื ื ืฉื Future ืืกืงืืื ืืื ืืืื ื ืคืืืช ืืชืืืื ืืกืคืจืืืช ืืื cats effect ืืื ืืืืื ืืืื ืืืืืช ืฉืืืืฉื ืืืขืืืช ืคืฉืืืืช, ืืื ืืืจืฉ ืืจืืื ืืืืฉ ืฉื ืงืื ืืชืืื ืืช. ื ืจืื ืืื ืื ืขืืื ืืจื ืืืืื ืคืฉืืื.
ืืคืื ืงืฆืื ืืืื ืืืืฆืจืช ืืืืืืจื ืจืฉืืื ืฉื ืืกืคืจืื:
def createNumbers(): List[Int] =
(1 to 10).map(_ =>
Thread.sleep(Random.nextInt(500))
Random.nextInt(100)).toList
ืืืืืื ืืฉ ืืืืืกื - ืืฉืืื ืืืืฆืจ ืืกืคืจ ืื ืื ื ืืืืื ืขื ืืฆื ืฉื ืื ืขื Thread.sleep. ืื ื ืืงื ืืช ืืจืฉืืื ืืืืืฅ ืื ื ืกื ืืืืคืืก ืืืชื ืขื ืงืื ืืื:
createNumbers().foreach(println(_))
ืืงืื ืืืื ืขื ืฉืืจืฉืืื ืืืื ืืืื ื ืืจืง ืื ืืืคืืก ืืืื ืืืช ืืช ืื ื-10 ืืกืคืจืื. ืื ืขืืื ืืืืืช ืืขืืืชื ืื ืื ืืืืืืฉืื ืกืืื ืืชืืื ืืช ืชืกืชืืื ืขื ืฉืืืื ืืคื ื ืฉืืฆืืืื ืืืืฆืจ ืืช ืื ืืจืฉืืื ืืฃ ืืกืคืจ ืื ืืืืคืก. ืืขืืจืช ืื ืื ืื Future ืื ื ืืืื ืืืืฆืจ ืจืฉืืื ืฉืชืืื ืืืื ื ืืงืื ืืืืฆืื ื ืื ืืคื ื ืฉืื ืืคืจืืืื ืืืฉืื ืืืืืื.
ืืจืขืืื ืืืืื ืืื ืฉืืืงืื ืืืืืืจ ืจืฉืืื ืฉื ืืกืคืจืื ืื ื ืืืืืจ ืจืฉืืื ืฉื ืชืืฆืืืช ืขืชืืืืืช (ืื Future ืืืืฆื ืชืืฆืื ืขืชืืืืช ืฉื ืืืฉืื). ืื ืืงืื:
def createFutureNumbers(): List[Future[Int]] =
(1 to 10).map(_ => Future[Int] {
Thread.sleep(Random.nextInt(500))
Random.nextInt(100)
}).toList
ืืงืื ืืืืฆืื ื ืื ื ืืืงื ืื Future ื"ืืืืืง" ืื ืงืื ืฉืืืืฆืข ืืืจื ืฉืืืชื ืืืฉืื ืขืชืืื ืืืื ืืืื. ืืืืืืช ืืืืคืกื ืื ืืืื:
val futures = createFutureNumbers()
futures.foreach(f => f.onComplete(i => println(i.get)))
ืืืืจ ืืื ืื ื ืจืืฆื ืืืืืช ืขื ืฉืื ืืืืฉืืืื ืืขืชืืืืื ืืกืชืืืื, ืืื ืื ื ืืืคื ืืช ืจืฉืืืช ืืืืฉืืืื ืืขืชืืืืื ื Future ืืื ืฉืืืื ืืืื ืืฉืื ืืคืจืืืื ืืจืฉืืื ืืืฉืื ืืขืืจืช ืืคืื ืงืฆืื sequence. ืคืื ืงืฆืื ื ืืกืคืช ืืฉื Await.ready ืชืืื ืขื ืฉ Future ืืกืชืืื ืืื ืชืืคืฉืจ ืืชืืื ืืช ืืจืืฅ ืขื ืืกืืื ืื ืืืืคืกืืช. ืกื ืืื ืืงืื ืืืืฆืื ื ืืืื:
@main
def f(): Unit =
val futures = createFutureNumbers()
futures.foreach(f => f.onComplete(i => println(i.get)))
Await.ready(Future.sequence(futures), Duration.Inf)
ืืืชืจ ืืื, ื Future ืืกืงืืื ืืืื ืคืื ืงืฆืื ืืฉื flatMap ืฉืืืคืฉืจืช ืืืืกืืฃ ืื ืืืฉื ืืืฉืื. ืืืืจื ืืืืืื ื ื ืื ืฉืืืจื ืฉืืืกืคืจ ืืืื ืืชืืื ืืช ืชืืื ืขืื ืืกืคืจ ืืืื ืฉื ืืืช ืืคื ืืืกืคืจ ืฉืืืฉื ืืื ืชืขืื ืืืชื ืืจืืืืข, ืืืกืืฃ ืชืืคืืก ืืช ืจืืืืขื ืื ืืืกืคืจืื. ืืงืื ืืืขืืืื ืืื ืืืื ืืกื ืืื:
def f(): Unit =
val futures = createFutureNumbers().map {f =>
f.flatMap(i => Future({
Thread.sleep(i)
i * i
}))
}
futures.foreach(f => f.onComplete(i => println(i.get)))
Await.ready(Future.sequence(futures), Duration.Inf)1 420
ืื ืืืื ืืืื ืืช ืื
ืฉื ื ืืืืืืฉืื ืืืืื ืืคืืืชืื ืืืืืื ืืื ืืกืคืจ ืืื ืจืืฉืื ื ืฉืงืืืื ืืืืจื:
* v1 - *
def is_prime_v1(n):
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
* v2 - *
from math import sqrt
def is_prime_v2(n):
return not any(n % i == 0 for i in range(2, int(sqrt(n)) + 1))
ืืืืื ืืืืื ืืื ืืื ืืืฉืืื ืฆืจืื ืืืืืจ ืืื ืืืืื ืืช ืืงืื. ืืืืืืฉ ืืจืืฉืื ืืกืคืืง ืืืืื ืื ืื ืคืื ืงืฆืื ืืืืชืืืื ืขื ืืืืืืช for ื range. ืืืืืืฉ ืืฉื ื ืืืจ ืืืจืฉ ืืืืจืืช ืขื Generator Comprehension, ืขื ืืคืื ืงืฆืื any ืืขื ืคืงืืืช import.
ืื ืืืฉื ืืื ืงืจืื ืืืชืจ? ืงืฉื ืืืืื. ืื ืฉืืืื ืืื ืฉืืฉืื ืืืชืืื ืืช ืืจืื ืืืืฉืืืช ืฉื ืืงืื ืืืขืจืืช ืืืกืืืื ืื ืืื ื ืืชื. ื Code Review ืืขืจืืช ืืื "ืืงืื ืืกืืจืื ืืื" ืื "ืืงืื ืื ืงืจืื" ืืืืจืืช ืืจืื ืคืขืืื "ืืงืื ืืฉืชืืฉ ืืคืืืช ืืื ืืืฉืืื", ืืืฆื ืืฉื ื, ืืขืจืืช ืืื "ืืงืื ืืชืืืื ืืื" ืื "ืืงืื ืงืฉื ืืชืืืืงื" ืืกื ืืื ืืืืจืืช "ืืงืื ืืฉืชืืฉ ืืืืชืจ ืืื ืืืฉืืื ืืืฉืคื". ืืฉืืงืื ืขื ืืืื ืืงืื ืฉืื ืื ื ืืืชืืื ืืืืืื ืืืื ืืืชื ื ืืจืื ืขื ืืฉืคื ืืืงืื ืขืฆืื.1 420
ืื ืืืื ืืืื ืืช ืื
ืฉื ื ืืืืืืฉืื ืืืืื ืืคืืืชืื ืืืืืื ืืื ืืกืคืจ ืืื ืจืืฉืื ื ืฉืงืืืื ืืืืจื:
* v1 - *
def is_prime_v1(n):
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
* v2 - *
from math import sqrt
def is_prime_v2(n):
return not any(n % i == 0 for i in range(2, int(sqrt(n)) + 1))
ืืืืื ืืืืื ืืื ืืื ืืืฉืืื ืฆืจืื ืืืืืจ ืืื ืืืืื ืืช ืืงืื. ืืืืืืฉ ืืจืืฉืื ืืกืคืืง ืืืืื ืื ืื ืคืื ืงืฆืื ืืืืชืืืื ืขื ืืืืืืช for ื range. ืืืืืืฉ ืืฉื ื ืืืจ ืืืจืฉ ืืืืจืืช ืขื Generator Comprehension, ืขื ืืคืื ืงืฆืื any ืืขื ืคืงืืืช import.
ืื ืืืฉื ืืื ืงืจืื ืืืชืจ? ืงืฉื ืืืืื. ืื ืฉืืืื ืืื ืฉืืฉืื ืืืชืืื ืืช ืืจืื ืืืืฉืืืช ืฉื ืืงืื ืืืขืจืืช ืืืกืืืื ืื ืืื ื ืืชื. ื Code Review ืืขืจืืช ืืื "ืืงืื ืืกืืจืื ืืื" ืื "ืืงืื ืื ืงืจืื" ืืืืจืืช ืืจืื ืคืขืืื "ืืงืื ืืฉืชืืฉ ืืคืืืช ืืื ืืืฉืืื", ืืืฆื ืืฉื ื, ืืขืจืืช ืืื "ืืงืื ืืชืืืื ืืื" ืื "ืืงืื ืงืฉื ืืชืืืืงื" ืืกื ืืื ืืืืจืืช "ืืงืื ืืฉืชืืฉ ืืืืชืจ ืืื ืืืฉืืื ืืืฉืคื". ืืฉืืงืื ืขื ืืืื ืืงืื ืฉืื ืื ื ืืืชืืื ืืืืืื ืืืื ืืืชื ื ืืจืื ืขื ืืฉืคื ืืืงืื ืขืฆืื.1 420
ืืืชื ืคืชืื ืืชืืืื ืฉื ืจืื (ืื: ืืื ืื ื ืฆืจืื ืขืื ืืื)
ืืฉ ืฉื ื ืกืืืื ืฉื ืฉืืขืืจืื ืืฉืขืืืื - ืืคืขืืื ืื ืืฉืขืื ืื ืื ืื ื ืืืืจืื ืืช ืื ืืืืืจ, ืืืคืขืืื ืื ืืงืฆื ืื ืืชืืื ืืื ืื ื ืคืฉืื ืื ืืืื ืื ืืืื.
ืืฉืืขืืื ืืืกืื ืืจืืฉืื ืืืชืจ ืงื. ืืฉืื ื ืืืืข ืื ืงืืจื ืื ื ืืืื ืื ืืื ืืฉืืืื ืืืืฉืืช, ืืคืืืกืืืง, ืืืืืืืจ ืื ืืื ืื ื ืืื ืืืจ. ืคืขื ืืืื ืืงืืช ืืคืฉืจ ืืืืฆืื ืืช ืืฉื ืืจืงื ืืื ืืจืืืช ืฉืืืืืจ ืขืืืื ืืืืจ.
ืืฉืืขืืื ืืืืชืจ ืงืฉื ืืื ืื ืืืกืื ืืฉื ื. ืฉืืขืืื ืฉื ืืืกืจ ืืื ื ืืื ืืชืืฉ, ืื ืื ืื ื ืืฉืงืืขืื ืืืื ืื ืจืืื ืืื ืกืืช ืืืืื, ืืื ืกืืช ืืืืืืง ืืช ืืงืฆื. ืืืื ื ืฉื ืืจืฆืื ืื ืืืื ืงืฉื ืืจืืืช ืืช ืืคืขืจ. ืื ืืฉืืขืืื ืืืจืืื.
ืืฉื ืชืงืืื ืืฉืืขืืื ืืื ืืืื ืกืืื ืงื ืฉืื ื ืืืขื. ืืืืชื ืจืืข ืื ืื ื ืจืง ืืืคืฉืื "ืืกืืืจ ืืช ืืคืขืจ", ืื ืกืืช "ืืืืื ืืื ืฉืืคืฉืจ", ืืืืฉืื ืืืงืฉืื ืืคืืื ืฉืื ืืฉืขืื ืื ืืืื ื ืืืืช ืกืคืจ ืฉืืฉ ืคื ืืฉืื ืืฉืื ืืฉืืืืืื ืืช ืืืืช ืื ืชืืืืจ. ืขืืฉืื ืืงืฉืืืื, ืืืจื ืื ืืืื ืื. ืืืจืื ืจืฆืื ืืืืื ืืขืื ืืื ื ืขืฆืืืช ืืืคื ืืคืืง, ืื ืืืืฃ ืืืจ ืืืืข ืื ืฉืืืื ืื ืจืืฆื ืืฉืืืข.
ืืืืืช ืืืืืืช ืืื ืฉืืคืขืจ ืืืชืจ ืืืื ืืื ืฉืืืื ืืื ืจืืฆื ืืืืืื. ืื ืื ืืืื "ืจืขืืื" ืงืื ืฉืฆืจืื ืืฉืืืข ืืืื ืืกืชืืจ, ืืื ืขืืืืช ืืฉืืื ืืฉืืขืืชืืช ืืื ืืกืืืจ ืืช ืืืชื ืคืขืจ. ืื ืื ืืงืืจืก ื ืชื ื ืื ืืฉื ืืฆื ืฉืขื, ืืืื ืื ื ืฆืจืื ืืจืืข ืฉืขืืช ืืื ืืืืื ืืช ืื ืืฉื ืืื. ืืงืฆื ืฉืื ืืืื ืืืืืช ืฉืื ื ืืืงืฆื ืฉื ืืืจืื ืืื ืืกืืื ืืืืื ืืงืฆื ืฉืื ืืชืืื ืื ืืื ืคืฉืื ืืชืืฉ.
ืืืฆื ืืื ืืคืืชืจืื ืืื ืืื ืืืืืื ืฉืขืืื ืืื ืืืืฆืื ืืงืฆื ืฉืื, ืื ืื ืื ืื ืืงืฆื ืฉื ืืืืชื ืื ืืืืืื. ืื ืืกืืจ ืืจืืืช ืืช ืืืชื ืฉืืขืืจ ืืื ืคืขืืื. ืื ืืกืืจ ืืืฉืงืืข ืฉืืืขืืื ืืืฃ ืชืจืืืืื, ืื ืื ืืืฉืื ืืืจ ืคืชืจ ืืืชื ืืืื. ืืืืื ืื ืื ืชืืจืืช ืืืงืืืฆื ืื ืืืื ืืืชืจ ืืื ืืื ืืืื ืฉืื ืื.
ืืงืฆื ืืืืื ืฉืขืืื ืืื ืืงืฆื ืฉืขืืื ืขืืืจื.
1 420
ืืืค ืกืงืืื: ืืืคืกืช ืืืื ืืืืฆืข Pipeline
ืืฉืคืืช ืคืื ืงืฆืืื ืืืืืช ืืื ืืืืช ืืื ืงืืื'ืจ ืื ืืืืงืกืืจ, ืืฉ ืืืคืจืืืจ Pipeline ืฉืฉืืื ืืช ืืชืืฆืื ืฉื ืคืื ืงืฆืื ืืืช ืืชืืจ ืงืื ืืคืื ืงืฆืื ืืืื ืืชืืจ. ืืืืืื ืืงืื ืืื ืืงืืื'ืจ:
(->> 10
(range)
(map #(* %1 %1))
(reduce +)
(println))
ืืืงื ืืช ืืืกืคืจ 10, ืฉืืื ืืืชื ืืชืืจ ืืคืจืืืจ ืืคืื ืงืฆืื range, ืืืจื ืื ืืืงื ืืช ืืชืืฆืื ืฉื range ืืชืืจ ืงืื ืืคืื ืงืฆืืืช ื map, ืืช ืืชืืฆืื ืฉื map ืืื ืฉืืื ื reduce ืืืช ืื ืืฉืื ื println ืืื ืืืืคืืก. ืกื ืืื ื ืงืื ืขื ืืืกื ืืช ืกืืื ืจืืืืขื ืืืกืคืจืื ืืืคืก ืขื ืชืฉืข.
ืื ืืฉ ืืขืื ืืืืฉืื ืืคืฉืจ ืืืืืืจ ืืงืืืช ืคืื ืงืฆืื ืฉืืืคืืกื ืืช ืืคืจืืืจืื ืฉืงืืืื ืืืืืืจื ืืืชื, ืืื ืืืืกืืฃ ืืืชื ืืืืฆืข ื Pipeline ืืื ืืจืืืช ืกืืืืก ืืื ืืื:
(defn debug [n]
(println n)
n)
(->> 10
(debug)
(range)
(debug)
(map #(* %1 %1))
(debug)
(reduce +)
(println))
ืืืคืกืืช ืืืื ืืื ืขืืืจืืช ืืืืื ืื ืงืืจื ืฉื ืืืชืงื ืืขืืืช ืืฉืฆืจืื.
ืืืขืืจ ืืกืงืืื ืืืื ืืชืืขืืขืชื ืืื ืื ืื ืืื, ืืืืื ืฉืืกืงืืื ืงืจืืื ืืฉืจืฉืจืช ืืคืื ืงืฆืืืช ืืฉืชืืฉืช ืืชืืืืจ ืืืชืืืืช ืฉื ืชืื ืืช ืืื ืื ืขืฆืืื. ืืื ื ืจืื ืงืื ืกืงืืื ืืงืืื ืืงืืื'ืจ ืืชืืืืช ืืคืืกื:
println(
(0 to 9)
.map(_.pow(2))
.sum
)
ืื ืื ืืื ืคืฉืื ืืกืงืืื ืื ื ืื ืืืื ืืืฉืชืืฉ ืคืขืืืื ืืคืจืืืจ ืฉื ืคืื ืงืฆืื ืื ืื ืืืืช ืืื ืืืงืื ืื ืืฉ ืื ืคืื ืงืฆืื ืืืขืืืช ืืจืืืืข, ืืืื ืืืื ืืช ืืืกืคืจ ืืืืจืื ืืื ืืกืืืืื ืืชืฉืข ืืืฉ ืคืื ืงืฆืืืช sum ืื ืื ืฆืจืืืื ืืช reduce. ืืืื ืืืช ืฉื ื ืืืจืื ืคืืืขืื ืคื ืืืืืื - ืืจืืฉืื ืืื ืฉ println ืฆืจืื ืืืืืชื ืืืชืืื ืืชืืจ ืคืื ืงืฆืื, ืืืฉื ื ืฉืื ืื ืืืชืื ืคืื ืงืฆืืืช debug ืืื ืฉืืืชื ืื ืืงืืื'ืจ ืืื ืื ืืืง ืืืคืืืคืืืื.
ืืฉืืืชื ื ืื ืื ืื ื Extensions ืฉื ืกืงืืื ืืืคืฉืจ ืืคืชืืจ ืืช ืฉืชื ืืืขืืืช ืืืกืืช ืืงืืืช. ืื ื ืืืืืจ Extension ืื ืจื ืฉืืืกืืฃ ืืช ืืคืื ืงืฆืื debug ืืื ืขืจื ืืฉืคื. ืื ื ืจืื ืืื:
extension [A](value: A)
def debug(): A =
println(value)
value
}
@main
def main(): Unit =
println(
(0 to 9)
.debug()
.map(_.pow(2))
.debug()
.sum
)
ืืืคืื:
NumericRange 0 to 9
Vector(0, 1, 4, 9, 16, 25, 36, 49, 64, 81)
285
ืืืชืจ ืืื, ืืืื ืฉืืืง ืืืืืืืงืืื ืืฉืคื ืืืืฉืืื ืืฆืืจื ืขืฆืื (ืืืฉื Range), ืืคืฉืจ ืืืืกืืฃ ืขืื ืคืื ืงืฆืื ืฉืชืืคืื ืืืืจืืืจืื ืืจืฉืืืืช ืืื ืชืืคืืก ืืืชื, ืจืง ืฉืืื ืื ืื ืืืคืขืื ืืืชื ืขื ืืืจืื ืืื ืกืืคืืื:
extension [A](value: A)
def debug(): A =
println(value)
value
def eagerDebug(): A = value match {
case it: Iterable[_] =>
println(it.toList)
value
case it: Iterator[_] =>
println(it.toList)
value
case _ =>
println(value.getClass)
value
}
@main
def main(): Unit =
println(
(0 to 9)
.eagerDebug()
.map(_.pow(2))
.debug()
.sum
)
ืืื ืืืจ ืืืกืคื ื ืืช debug ื ืืื ืืืฉืชืืฉ ืื ืื ืืกืืฃ ืืคืืืคืืืื ืืื ืืืืคืืก ืืกืื ืื ืงืืื'ืจ:
@main
def main(): Unit =
(0 to 9)
.eagerDebug()
.map(_.pow(2))
.debug()
.sum
.debug()1 420
ืกืงืจืืคืืื ื JavaScript? ืชื ื ืฆ'ืื ืก ืืืื ืืืืืจ
ืืืช ืืืขืืืช ืืฉืืืืฉ ื node.js ืืืชืืืช ืกืงืจืืคืืื ืืื ืืงืืืฅ package.json, ืื ืืืชืจ ื ืืื ืืฆืืจื ืืฆืจืฃ ืืืชื ืืกืงืจืืคื ืืื ืืืชืงืื ืืช ืืชืืืืืช. ืืชืืื ืืช ืืืื ื node.js ืืชืื ืงืื ืืืืืื ืฉื ืืืืืื wikipedia ืขื npm ืื ืืืืื ืืจืืฅ ืืื:
const wiki = require('wikipedia');
(async () => {
try {
const page = await wiki.page('Batman');
console.log(page);
//Response of type @Page object
const summary = await page.summary();
console.log(summary);
//Response of type @wikiSummary - contains the intro and the main image
} catch (error) {
console.log(error);
//=> Typeof wikiError
}
})();
ืืฉืืื ืฉืืื ืชืขืืื ืื ื ืฆืจืื ืืืฆืืจ ืืืชื ืืชืืงืื ืงืืืฅ package.json ืืืืคืขืื npm install ืื ืืืคืขืื
npm install wikipedia
ืืฉืืจืช ืืคืงืืื ืืคื ื ืืจืฆื.
ืขืืฉืื ืืืื ื ืจืื ืืื ืืืชื ืืจืืง ืืขืืื ืขื ืืื ื. ืืืจ ืจืืฉืื ืฆืจืื ืืฉื ืืช ืืช ืฉืืจืช ื require ื import, ืืืฆืืื ืฉืื ื ืืืขื ืืช ืืืืืื ื npm ืื ืฉืงืื ืืชืืื ืืช ืืืื:
import wiki from 'npm:wikipedia';
(async () => {
try {
const page = await wiki.page('Batman');
console.log(page);
//Response of type @Page object
const summary = await page.summary();
console.log(summary);
//Response of type @wikiSummary - contains the intro and the main image
} catch (error) {
console.log(error);
//=> Typeof wikiError
}
})();
ืืืืื ืื ืจืง ืืฉืชืคืจ. ืื ื ืืจืืฅ ืืช ืืงืื ืืืื ื ืืชืืื ืืืืืืจ ืืืชื:
$ deno run demo.js
โ ๏ธ โ Deno requests env access to "npm_config_no_proxy".
โ Run again with --allow-env to bypass this prompt.
โ Allow? [y/n] (y = yes, allow; n = no, deny) >
ืฉืื ืื, ืืื ืืืืจ, ืืกืงืจืืคื ืืขืื ืืื ืืงืจืื ืืืืข ืืืฉืชื ื ืกืืืื ืืืคืืื ืืืชื ืืช ืืฉื ืฉื ืืฉืชื ื ืืกืืืื. ืื ื ืืืื ืืืฉืจ ืขื y ืื ืืืจืืฅ ืืืืฉ ืขื --allow-end ืืื ืฉืื ืืฉืื ืืืชืจ ืขื ืืืฉื ืืืฉืชื ื ืกืืืื. ืื ื ืืืฉืจ ืืืืฉืืืื ืืฉืืืืช ืืืืืช. ืื ืื ื ืจืื ืืกืืฃ:
$ deno run demo.js
โ
Granted env access to "npm_config_no_proxy".
โ
Granted env access to "NPM_CONFIG_NO_PROXY".
โ
Granted env access to "no_proxy".
โ
Granted env access to "NO_PROXY".
โ
Granted env access to "npm_config_https_proxy".
โ
Granted env access to "NPM_CONFIG_HTTPS_PROXY".
โ
Granted env access to "https_proxy".
โ
Granted env access to "HTTPS_PROXY".
โ
Granted env access to "npm_config_proxy".
โ
Granted env access to "NPM_CONFIG_PROXY".
โ
Granted env access to "all_proxy".
โ
Granted env access to "ALL_PROXY".
โ
Granted read access to "/Users/ynonp/Library/Caches/deno/npm/node_modules".
โ
Granted read access to "/Users/ynonp/Library/Caches/deno/node_modules".
โ
Granted read access to "/Users/ynonp/Library/Caches/node_modules".
โ
Granted read access to "/Users/ynonp/Library/node_modules".
โ
Granted read access to "/Users/ynonp/node_modules".
โ
Granted read access to "/Users/node_modules".
โ
Granted read access to "/node_modules".
โ
Granted net access to "en.wikipedia.org".
ืืืืจื ืื ืืืืข ืืคืื ืืจืืื ืฉื ืืกืงืจืืคื. ืื ืื ื ืกืืื ืขื ืืกืงืจืืคื ืื ื ืืืื ืคืขื ืืืื ืืืจืืฅ ืืืชื ืขื ืืืชืืื:
$ deno run --allow-net --allow-read --allow-env demo.js
ืืื ืืืื ืขื ืืฉืืืืช.
ืกื ืืื ืืชืืื ืืืจืฆืช ืกืงืจืืคื ืขื ืืื ื ื ืชื ื ืื ืฉื ื ืืชืจืื ืืช ืืฉืืขืืชืืื ืขื ืคื ื node:
1. ืืื ืฆืืจื ืืงืืืฅ package.json, ืื ืืชืืืืืช ืจืฉืืืืช ืืชืื ืงืืืฅ ืืกืงืจืืคื ืืืืชืงื ื ืงืืจืืช ืืืืืืืืช ืืืจืฆื ืืจืืฉืื ื.
2. ืื ื ืืืฉืฉ ืืจืื ืคืืืช ืืงืื ืืืื ื, ืื ืืืจืืจืช ืืืืื ืืกืงืจืืคื ืจืฅ ืขื ืืขื ืืืื ืืจืฉืืืช.1 420
ืืืื ืืืืชื - ืื ืืื ืคืฉืื ืืืคืฉ ืืืกืืฃ ืืืืืื ืจืืืืืจื
ืืชืืื ืืืื Advent Of Code ืืืืื ื ืื ื ืื ืจืื ืื ืืฆืืื ืืคืชืืจ ืืช ืื ืืืืืืช ืฉืื ืืฉื ื ืขื ืืืื ืืจืืฉืื ืื ืืคืฉืจ ืืืืชืจ. ืืืืื ืืืืืืช ืืื ืฆืจืื ืืืฆืื ืืืจืื ืืชืื ืืงืกืืื. ืื ืืื ืืกืืื ืขื ืฉื ืชืงืืื ืืืจืืง ืืงืื ืฉืืงืืงื ืืื.
ืืชืจืืื ืืืืจืืง
ืืกืืคืืจ ืืืืื ืืื ืืืฆืื ืกืคืจืืช ืืชืื ืฉืืจืช ืืงืกื, ืืฉืืกืคืจืืช ืืืืืืช ืืืืคืืข ืืชืืจ ืกืคืจืืช ืืืฉ ืืื 4, 9 ืื 2 ืื ืืชืืจ ืฉื ืืกืคืจื ืืื four, nine ืื two. ืื ืื ื ืฆืจืืืื ืืืฆืื ืืืื ืชื ืฉืืจืช ืืงืกื ืืช ืืกืืคืจื ืืจืืฉืื ื ืืืกืืคืจื ืืืืจืื ื ืื. ืืืฉื ืืฉืืจื:
24
ืืกืืคืจื ืืจืืฉืื ื ืืื 2 ืืืืืจืื ื ืืื 4.
ืืฉืืจื:
abc7d
ืืกืืคืจื 7 ืืื ืื ืืกืืคืจื ืืจืืฉืื ื ืืื ืืืืจืื ื.
ืืืฉืืจื:
eightwo
ืืกืืคืจื 8 ืืื ืืจืืฉืื ื ื 2 ืืื ืืืืจืื ื.
ื ืืกืื 1 - ืืืคืืฉ ืื ืืืืคืขืื
ืจืขืืื ืจืืฉืื ืฉืืคืฉืจ ืื ืกืืช ืืื ืืืฆืื ืืช ืืกืืคืจื ืืจืืฉืื ื ืืืืืจืื ื ืืื ืืืคืืฉ ืืืืืืื, ืืคืืืชืื ืื ืืืื:
>>> digits = [str(i) for i in range(10)] + ["one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
>>> digits_r = '|'.join(digits)
>>> re.findall(digits_r, "1abc3")
['1', '3']
ืืื ืขืืื ืขื ืฉืื ืืคืกืืง ืืขืืื:
>>> re.findall(digitsr, "eightwo")
['eight']
ืื ืืืขืื ืฉื t ืืฉืืชืฃ ืื ื eight ืืื ื two ืืื ืืข ืืืืืืืื ืืจืืืืืจืืื ืืืจ ืืืื ืืช ื t ืืฉืืื ืืฆื ืืช eight.
ืคืืชืจืื - ืืืคืืฉ ืืคืื
ืืืืขืืจ ืืจื ืืืื ืืืคืฉ ืืืกืืฃ ืืืืืื ืจืืืืืจื ื ืืจืฉืช ืืฆืืจืชืืืช - ืืืฉื ืืืคืื ืืช ืื ืืืงืกืืื ืืคื ื ืืืืคืืฉ ืืื ืืืคืื ืืืจื ืืืจื ืฉืืืฆืืื ืืื ืืืขืช ืืืื ืกืืคืจื ืืฆืื ื. ืืคืืืชืื ืื ืงื:
>>> digits_re = '|'.join([d[::-1] for d in digits])
>>> [r[::-1] for r in re.findall(digits_re, "eightwo"[::-1])]
['two']
Endi mavjud! Telegram Tadqiqoti 2025 โ yilning asosiy insaytlari 
