ToCode
Kanalga Telegramโda oโtish
ืืืคืื ืงืฆืจืื ืืืชืื ืชืื ืืืช ืื ืื ืคืจืง
Ko'proq ko'rsatish1 420
Obunachilar
Ma'lumot yo'q24 soatlar
+27 kunlar
-230 kunlar
Postlar arxiv
1 420
# ืืืื ืืืืชื: ืกืืืื ืคืื ืงืฆืื ืืชืืจ Deprecated ื TypeScript
ืืขืืืื ืขื ืืขืจืืืช ืืืืจื ืืื ืืืื ืื ื ืืฆืืื ืฉื ืฉื ื ืืช ืืขืชื ื ืืืื ืืืฉืง ืื ืจืฆื ืืฉืื ืข ืืช ืืืชืื ืชืื ืืืืจืื ืืฆืืืช (ืื ืืช ืขืฆืื ื ืฉื ืืขืชืื) ืืืคืกืืง ืืืฉืชืืฉ ืืคืื ืงืฆืื ืืกืืืืช ืืืขืืืจ ืืืฉืชืืฉ ืืืงืืื ืืคืื ืงืฆืื ืืืจืช - ืืืฉื ืื ืืคืื ืงืฆืื ืืืืจืช ืืืืืช ืืืชืจ ืืืืืืช ืื ืืชืืื ืืฆืืจื ืฉืืืชืจ ืงื ืื ืืืืืง ืืืชื.
ืขื ืืืืคืกืงืจืืคื ื VS Code ืกืืืื ืืื ืืื ืืืกืืช ืคืฉืื:
1. ืื ืื ื ืืืกืืคืื ืืช ืืืืื
@deprecated ืืืขืจืช JSDoc ืืขื ืืืืจืช ืืคืื ืงืฆืื ืืืชื ืจืืฆืื ืืกืื ืืชืืจ Deprecated.
2. ืืืืคื ืืืืืืื ืืฉ VS Code ืืืฆื ืฉืืฉืชืืฉืชื ืืืืชื ืคืื ืงืฆืื ืืื ืืกืื ืงื ืืืืฆืข ืฉื ืืงืื ืฉืืคืขืื ืืช ืืคืื ืงืฆืื (strike through) ืืืฉืื ื ืืขืืืจ ืขื ืืกืืืื ืขื ืืขืืืจ ืื ื ืืืื ืืจืืืช ืืช ืื ืืืขืจื, ืฉื ืืืจื ืืื ืชืืื ืืืืฆื ืืื ืืืฉืชืืฉ ืืืงืื.
ืืืืื? ืืื. ื ืกื ืืืืืืง ืืช ืืงืื ืืื ืืงืืืฅ ืืืืคืกืงืจืืคื ืืชืจืื ืืช ืืงืกื:
/**
* @deprecated The method should not be used. Use `bar` instead.
*/
function foo(x: number) {
return x + x;
}
function bar(x: number) {
return x * 2;
}
const x = foo(10);
const y = bar(20);
ืืื ืืื ืืื ืคืจืืืงื ืืืืคืกืงืจืืคื ืืืื ืืคืฉืจ ืืจืืืช ืืช ืืืคืงื ืื ืืืื ื TypeScript Playground ืืงืืฉืืจ ืืื.1 420
# ืฉืชื ืืจืืื ืืื ืืช ืืขืจืืช (ืื: ืขื ืืื ืฉื ืืขืืคื)
ืืฉ ืืืื ืฉืืขืืืคื ืืื ืืช ืืขืจืืช ืืืืื ืืืขืื: ืืืชืืื ืขื ืืขื ืืืื ืชืืืืืช, ืืจืง ืืฉืืืืื ืฆืืจื ืื ืืขืื ืืืกืืคืื ืขืื ืกืคืจืื ืืืฆืื ืืช.
ืืืจืื ืืขืืืคื ืืืืช ืืืืืื ืืืคืื: ืืืชืืื ืขื ืืฉืื ืืื ืฉืืืชืจ "ืฉืื" (ืืื ืจืืืืก, ืื ืืืืจ ืื create-react-app) ืืืื ืฉืืชืงืืืื ืืืืื ืื ืืื ืืืชืจ ืืช ืืืขืจืืช ืืืฆืจืืื ืืคืฉืจ ืืืืืง ืืื ื ืืช ืื ืฉืื ืฆืจืื.
ืคืืืช ืืฉืื ืื ืืืจื ืืืืขืืคืช ืขืืืื. ืืืชืจ ืืฉืื ืื ืืืืชืงืข ืืืืฆืข ืืืจื, ืืืืืจ ืื ืืืืฉืืจ ืขื ืืืชืจ ืืื ืชืืืืืช ืืื ืื ืขื ืคืืืช ืืื. ืืกืืคื ืฉื ืืื "ืงืื ืืืืชืจ" ืืื ืืขืื ืืืืืง ืืื "ืืืืฆืื ืืืืฉ ืืช ืืืืื".
1 420
# ืืืค ืจืืกืืงื - ืฉืืื ืื ืืฉืืชื ืืคืขืืืื filter ืื map ืืชืื Selector
ืกืคืจืืืช Reselect ืขืืืจืช ืื ื ืืื ืืช ืคืื ืงืฆืืืช ืฉืืืฉืืืช ืืืืข ื Redux Store. ืจืืกืืงื ืืืืขื ืืืืง ืืกืคืจืืืช Redux Toolkit ืืืฉืืื ืืืฉืชืืฉ ืื ืืคืจืืืงื ืื ืื ื ืฆืจืืืื ืจืง ืืืืื ืืช ืืคืื ืงืฆืื ืืืจืืืืช ืฉืื
createSelector:
import { createSelector } from "@reduxjs/toolkit";
ืืฉืืื ืืืืื ืืื ืฆืจืื ืืช createSelector ื ืฆืืจื ืืืืืืจ ืืื ืขืืืืช ืืคืื ืงืฆืื useSelector ืื ืื ืื ื ืืฉืชืืฉืื ืืชืื ืงืืืคืื ื ืืืช:
1. ืืชืื ืงืื ืงืืืคืื ื ืื ืื ื ืงืืจื ื useSelector ืืื "ืืืืจ" ืืื ืงืื ืืงืืืคืื ื ืื ืื ืชืื ืืกืืื ืืืืืืงื ื State ื Redux.
2. ืืคืจืืืจ ืฉืื ื ืืขืืืจ ื useSelector ืืื ืคืื ืงืฆืื ืืขืฆืื - ืคืื ืงืฆืื ืฉืืงืืืช ืืช ืื ืืกืืืื ืืืืืืจื ื ืชืื ืืกืืื, ืืืืืื ืื ื ืืืื ืืืฆืื ืืชืื ืงืื ืงืืืคืื ื ืื ืืช ืืฉืืจื:
const todos = useSelector((state: AppState) => state.todos);
ืืื ืืืฉืช ืืื ืืขืจื ื todos ืฉืืฉ ืืกืืืื.
3. ืื ืคืขื ืฉืืืฉืื ืืืืืฉืื ืืงืื ืืืขืจืืช ืขืืฉื dispatch, ืื ืคืื ืงืฆืืืช ื useSelector ืืชืขืืจืจื ืืืคืขืืื ืืช ืืคืื ืงืฆืืืช ืฉืื ืงืืืื ืืคืจืืืจืื. ืืื ืฉืืืืืจื ืขืจื ืืืฉ ืืืจืื ืืจืื ืืืจ ืืืืฉ ืฉื ืืงืืืคืื ื ืื. ืื ืืืืจ ืฉืืื Action ืฉืืฉืื ื Store, ืืงืื ืฉืื ืืกืชืื ืขื ืืฉืื todos ืืืฉืืื ืืืชื ืืขืจื ืืงืืื.
4. ืืคืขืืื ืื ื ืจืืฆื ืืืคืขืื ืืืฉืืืื ืืืจืืืื ืืชืื useSelector. ืืืฆื ืืื ืืืื ืื ืืฉืชืื ืืืคืขืื ืืช ืื ืืืืฉืื ืืืืฉ, ืืืืืื ืื ืื ื ืืืืข ืืื ืืืืฉืื ืชืืื. ืืืืืื ื ืชืืื ื ื Selector ืืื:
const todosCount = useSelector((state: AppState) => state.todos.length);
ืื ืื ื ืืืืขืื ืืืืืืืช ืฉืจืง ืื state.todos ืืฉืชื ื ืืฉ ืกืืืื ืืืื ืฉืืืืจื ืืฉืชื ื (ืื ืื ืืืื, ืืื ืืฉ ืกืืืื). ืื ืขืื state.todos ืืืืืจ ืืช ืืืชื ืขืจื, ืืื ืืขื ืืืฉื ืืืืฉ ืืช ื length ืฉืื ืื ืืื ืืืื ืืฆื ืืืชื ืืืจ. ืืืืช ืืืืืง ืืืืจื ืฉื Reselect.
5. ืืกืคืจืื Reselect ืืืคืฉืจืช ืื ื ืืชืืจ ืืช ืืงืฉืจ ืืื Selector-ืื ืฉืื ืื, ืืื ืืืกืื ืืืฉืืืื ืืืืชืจืื. ืกืืงืืืจ ืืืืฉื ืืืืฉ ืจืง ืื ืืืง ืืืชืืืืืช ืฉืื ืืฉืชื ื.
ืืืื ื ืจืื ืขืื ืืืืื ืงืฆืช ืืืชืจ ืืืจืืืช ืืื ืขืืืื ืืขืืื ืฉื Todos:
import { createSelector } from "@reduxjs/toolkit";
import { AppState } from "./store";
const todos = (state: AppState) => state.todos;
export const todosThatStartWithA = createSelector(todos, (todos) =>
todos.filter((t) => t.message.startsWith("a"))
);
export const finishedTodosThatStartWithA = createSelector(
todosThatStartWithA,
(todos) => todos.filter((t) => t.completed)
);
export const numberOfFinishedTodosThatStartWithA = createSelector(
finishedTodosThatStartWithA,
(finishedTodosThatStartWithA) => {
console.log(`Recalculating the length`);
return finishedTodosThatStartWithA.length;
}
);
ืืฉ ืื ืื ืืื ื ืฉืืืืช ืฉืงืฉืืจืืช ื todos, ืืืฉื:
1. ืื ื todos ืืืขืจื ืฉืืืืืขื ืฉืืื ืืชืืืื ื a ?
2. ืื ื todos ืืืขืจื ืฉืืืืืขื ืฉืืื ืืชืืืื ื a, ืืื ืืกืืื ืื ืืชืืจ completed ?
3. ืืื todos ืืฉ ืืืขืจื ืฉืื ืืืืืขื ืฉืืื ืืชืืืื ื a ืืื ืืกืืื ืื ืืชืืจ completed ?
ืืฉืืืืฉ ื createSelector ืืกืคืง ืืจื ื ืืื ืืฉืื ืืื Selectors, ืืื ืืืฉื ืืืืฉ ืื Selector ืจืง ืืฉืืชืืืืืช ืฉืื ืืืืช ืืฉืชื ืืช. ืืื ืืืื ืื ื ืชืืืื, ืืคืืื Reselect ืืื ื ืงืืกื.
ืืืจืืช ืฉืืืชืื ื ืืชื ืืจืืฉื ืืืืื ื Selectors ืชืืืืื ืืื ืืฉื ื, ืืคืืขื ืืืื ืฉืฉื ื ื Selectors ืฉืืืืฆืข ืืฉืชืืฉืื ื filter (ืืืื ืืืืฆืจืื ืืขืจื ืืืฉ), ืืฆื ืืชืืืืืช ืืื ืฉืื ื Selectors ืชืืืืื ื state.todos. ืืจืืข ืฉืืขืจื ื todos ืืฉืชื ื ืืื ืกืืื ืฉืืื, ืื ื Selectors ืืืืฉืื ืืืืฉ, ืื todosThatStartWithA ื finishedTodosThatStartWithA ืชืืื ืืืืืจืื ืืขืจื ืืืฉ. ืื ื ืจืืฅ ืืช ืืงืื ื ืืื ืฉืื ืฉืื ืื ื todos, ืื ืื ื todos ืฉืืฉืชื ื ืื ืืชืืืืื ื a, ืขืืืื ืืจื ืืืืฉืื ืืืืฉ ืฉื ื Selector ืืืืจืื.
ืืงืืฆืืจ ืื ืืฉืจืืืืงืก ื ืืชื ืืื ืืชื ืืช, ืชืืื ืฆืจืื ืืฉืื ืื ืืชืืืืืช ืฉืื ื ืืืจืื ืืืจืื ืืคืืืื. ืื ืื ืชืืื ืืขืื ืืื ืื ืืืื ืืืืืช ืืืืขืื ืืื ืงืืจื.1 420
# ืืฆืฆื ืืขืืื ืคืืกื GPT3
ืฉืืจืืช ืืฆ'ื ืืืืฉ ืฉื OpenAI ืคืืชื ืฆืืืจ ืืขืืื ืขืชืืื ื ืื (ืืจืื ืืืชืจ ืงืจืื ืืืืื ืืืช ืืขืืคืคืืช. ืื ืจืื ืื ืืจืื ืืืชืจ ืงืจืื ืืืืื ืืืช ืฉื ืืกืขืืช ืืื) ืื ืืืฉืืื ืืงืจืื ืืจืืฉืืช ืฉื ืื ืฉื ืืืฆืจ ืืืืชืื ืืขืฆืื ืืช ืจืื ืืงืื. ืืืจ ืืืื ืื ืื ื ืืืืืื ืืืงืฉ ืืืืฉื ืืืชืื ืชืืื ืืืช ืคืฉืืืืช ืืืื ืื ืืืื ืืช ืืืฉืืื, ืืืฉื ืื ื ืืืงืฉืชื ืืื ื ื Playground:
Implement a program that reads a file and writes its lines backwards
ืืงืืืืชื ืืช ืืงืื ืืื ืืคืืืชืื:
import sys
def main():
if len(sys.argv) != 2:
print("Usage: python reverse.py <file>")
sys.exit(1)
file = sys.argv[1]
with open(file, 'r') as f:
lines = f.readlines()
lines.reverse()
for line in lines:
print(line, end='')
if __name__ == "__main__":
main()
ืืขืื ืืกืคืจ ืฉื ืื ืื ืืงืจืื ืืื ืืช ืืจืืืกื ืื'ืืจื ืฉืืื ืืืคืชืจื ืืืืื. ืื ืื ืืืชืื ืคืืฆ'ืจืื ืืืฉืื ืืืืื ืืคืืื ืืขืจืืืช. ืืื ืื ืืืืืื ืืืืืช ืืจืื ืืืชืจ ืืืืื ืืื ืืชืื ืช ืื ืืฉื ืฉืชืฆืืืื ืืืฆืื.
ืื ืื, ืืืืืืฃ ืืงืฆืืข? ื ืืื ืื ืฉืืืกืงื ื ืืื ืืืืืง ืืคืืื:
1. ืืื ืฉืืืฉืืื ืืืชืื ืืืงืื ืืืืืื ืืืชืจ ืืงืื ืฉืื ื, ืื ืืืขืืืืช ืฉืืื ืืืื ืืืชืจ ืขืืื ืืช. ืืื ืฉืืืื ืื ืื ื ืฆืจืืืื ืฆืืืชืื ืฉื ืืชืื ืชืื ืืื ืืชืืืง ืืืืืืฆืืืช, ืื ืื ื ืืืฉื ืฉื ืฆืืจื ืฆืืืชืื ืฉื ืืชืื ืชืื ืฉืืื ื ืืืชืืืงื ืืช ืืืืืืื ืฉืืืชื ืืืื ื ืืืืืืืชืืช ืืืชืืช ืืช ืืงืื.
2. ืืื ืฉืืืืืื ืฉื ืืืืฉืืื ืืืื ืืืชืจ ืืขื ืืื ืื, ื ืฆืืจื ืืชืื ืชืื ืืืืื ืืืชืจ ืืื ืืืฆืื ืืืชืงื ืืืชื. ืืื, ืืืขืจืืืช ืืืื ืืกืืจื ืืืื ืืืชืจ ืืืจืืืืช ืื ืืืฉืืื ืื ืืฉื ืื ืืื ืฆืจืืืื ืืื ืืืฉืื.
3. ืืื ืืื ืืขื ืืืคืืฉ, ืื ืื ืืขืืืื ืขื ืืื ื ืืืืืืชืืช ืื ืื ื ื ืฆืืจื ืืืฉืื ืืื ืื ืื ืื ื ืืืงืฉืื ืืืืืฉื, ืืืื ื ืืื ืืช ืืืื ืชืืื ืืืคืชื ืืืฆืืจืช ืืงืฉืืช ืฉืืืฆืจื ืชืฉืืืืช ืจืืืื ืืืืช.
4. ืขืืื ืืกืืืืจ ืฉื ืืืื ืืื ืืืื ืืขืืืช ืื ืฉืืฆืคื ืื ื: ืืฆื ืืื ืืืงืจืื ืฉืืฉืชืืืื ืงืื ืืืื ื ืืื ืื ืื ื ืืืืื ืืืืืืื ืืื ืฉืืงืื ืฉืืืชื ืืืืืื ืืืชืื ืืืื ืืืชืืช ืืืืจืืืช ืขืืื ืืช, ืืืฆื ืฉื ื ืฆืืจื ืืืื ืืืืืจ ืืืืฆืจื ืืืืื ืฉืืืฆืื ืืืชืงื ื ืืช ืืืืชืืช ืืืืืจืืืช ืืืื ืืฆืืจื ืืืืืืืืช.
ืืืืจื ืืืืืื, ืืืืืื ืืืจืช ืืืงืฉืชื ื GPT3 ืืืืฆืจ ืื Unix Pipeline ืฉืกืืื ืืช ืื ืืืกืคืจืื ืฉืืื ืงืืื ืืืงืื ืืกืื ืืจืื ืขื ืืฉืืืืชื:
create a unix pipeline to sum all the numbers read from stdin
ืืื ืืฆืืข ืฉื ื ืจืขืืื ืืช, ืื ืืื ืขื ืืืขืืืช ืฉืื:
# Option 1
cat | tr ' ' '\n' | awk '{ sum += $1 } END { print sum }'
# Option 2
cat | paste -sd+ | bc
ืืจืืฉืื ื cut ืื tr ืืืืชืจืื; ืืฉื ื ืื ืขืืื ืขื ืืง ืืืืชื ืื ืจืื ืขื ืขืื ืืื ืืจืืื ืืื ืฉื ืืื ืืงืก ืื paste ืืฆืื ื ืื ืงืืจืืช ื STDIN.
ืืืืจืืช ืืื ืืกืืคืืจ ืืื ืืจืฉืื ืืืจืืฉ. ืื ืขืื ืื ืงืฉืงืฉืชื ืขื GPT3 ืืื ืืืืจืฉื ืขืืฉืื. ืืืจืืฃ ืื ืฉืืืื ืฉื.1 420
ืขืืฉืื ืฉืื ืชืื ืื ืืืืืงืื ืืงืืืฆืืช ืืคืฉืจ ืืืื ืื ืงืืืฆื ืืฉืืจื ืืืืฉืชืืฉ ื egrep ืืื ืืืฆืื ืืช ืืืืช ืืืฉืืชืคืช ืืฉืืืฉืช ืืืืืื ืืฉืืจื:
$ awk '{ print } NR%3 == 0 { print "" }' demo.txt| sed 's/^$/\x0/' | tr '\n' ' ' | xargs -0 -n 1 | egrep -o '([a-zA-Z]).* .*\1.* .*\1.*' | cut -c 1
r
Z
ืืืืคื ืืขืืืคืืช ืืกืืืื ืืืืืง ืืื ืืืืง ืืงืืื ื ืืชื ืช ืื ื:
$ awk '{ print } NR%3 == 0 { print "" }' demo.txt| sed 's/^$/\x0/' | tr '\n' ' ' | xargs -0 -n 1 | egrep -o '([a-zA-Z]).* .*\1.* .*\1.*' | cut -c 1 | xargs -n 1 -I {} grep {} priority| awk '{ print $1 }' | sum
70
## ืื ืืืื
ืื ืืคืืกื ืืื ืขืฉื ืืื ืืฉืง ืืืืื awk ืืืชืจ ืืขืืืง, ืชืฉืืื ืืฉืืืข ืฉืืืจ ืืชืืชื ืขืืื ืืืจืื ืืืกืืช ืืคืืจื ืืงืืฉืืจ ืืื:
https://www.tocode.co.il/blog/2022-06-awk.
ืืื ืืชื ืจืืฆืื ืืจืืืช ืคืืชืจืื ืืช ืืืชืจ ืจืฆืื ืืื ืืชืจืืืืื ืืืื, ืื ืืฉืชืฃ ืคืืชืจืื ืืช ืฉืืื, ืืืืื ืื ืืืฆืืจืฃ ืืงืืืฆื ืืืืืจื ืืืงืืฉืืจ ืืชืืืืช ืืคืืกื.1 420
# ืืฉืื awk ืืฆืื ืืช ืืืื
ืืืืืชื ืืขืฆืื ืฉืื ื ืื ืืขืฉื ืืช ืื ื Advent Of Code-ืื ืืฉื ื, ืืื ื ืืืืช ืืชืื ื ืืืคืกืืง - ืืื ืขื ืฉืื ืืงืจื ืื ื ืืงืืื ืืืฉืชืืฉ ืืืืื ืฉื ืืืื ืืื ืืืจืืืช ืขืื ืืื ืืจืืงืื ืฉื ืืื ืืงืก ื awk ืฉืืืื ืืขืืจื ืืื ืื ืืืืฅ ืืืจืฅ ืืืืคืื.
## ืื ืฆืจืื ืืืฉื
ืื ืืฉ ืืื ืกืืื ืืช ืืืคืืจืืช ืฉื ืืจืืง ืืืกืื ืื ืืคืฉืจ ืืงืจืื ืืช ืืชืจืืื ืืืงืืจื ืขื ืกืืคืืจื ืืืคืื ืืืชืจ ืืืฉืืง.
ืืื ืืงืืืฆืช ืืืืืจื ืื ืชืงืฆืจ ืืช ืื ืืฆืืจื ืืืคืืื ืื ืื ื ืคืฉืื ืืืืืง ืืื ืืช ืื ืืกืื ืฉืื:
ืืื ืืืช ืืืืื a-z ืืฉ ืขืจื ืฉื ืงืจื "ืขืืืคืืช", ืืืื 1โ26 ืืืชืืื.
ืื "ื A-Z, ืขืจืืื ืฉื 27โ52 ืืืชืืื.
ืืืง 1:
ืืืง ืื ืฉืืจื ืึพ2. ืืื ืืืืง ืืจืืฉืื ืืืืง ืืฉื ื ืืฉื ื ืืืช ืืฉืืชืคืช. ืืฆื ืืช ืกืืื ืืขืืืคืืืืช ืฉื ืืืืชืืืช ืืืฉืืชืคืืช.
ืืืง 2:
ืขืืืจ ืื 3 ืฉืืจืืช ืฆืืืืืช ืืงืืืฅ ืืงืื, ืืื ืืคืืคืืช (ืฉืืจืืช 1โ3, 4โ6 ืืื ืืืื), ืืฉื ื ืืืช ืืฉืืชืคืช ืืื ืืฉืืจืืช. ืืฆื ืืช ืกืืื ืืขืืืคืืืืช ืฉื ืื ืืืืชืืืช ืืืื.
ืืืืืื ืื ื ืชืื ืืงืื:
vJrwpWtwJgWrhcsFMMfFFhFp
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
PmmdzqPrVvPwwTWBwg
wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
ttgJtRGJQctTZtZT
CrZsJsPPZsGzwwsLwLmpwMDw
ืื ืืืืง ืืจืืฉืื ืื ืื ื ืฆืจืืืื ืืืืง ืื ืฉืืจื ื-2 ืืืืืง ืืืืฆืข, ืืืืฆืื ืืืื ืืืช ืืืคืืขื ืืฉื ื ืืืฆืืื, ืืื ืืกืืื ืืช ืืืืชืืืช ืฉืืฆืื ื ืืื ืืฉืืจืืช ืืคื ืืืืช ืืขืืืคืืืืช. ืืืืง ืืฉื ื ืฆืจืื ืืืืง ืืช ืืืงืกื ืืงืืืฆืืช ืฉื ืฉืืืฉ ืฉืืจืืช ืืืืฆืื ืืช ืืืืช ืืืฉืืชืคืช ืืื ืืฉืืจืืช.
## ืขืืืืช ืืื ื
ืื ืื ื ืืืืืื ืืืฉืชืืฉ ืืืืื ืืกืื ืืจืืืื ืฉื ืืื ืืงืก ืืฉืืื ืืืฉื ืืช ืฉื ื ืืืืงืื, ืืื ืืฉืืื ืฉืืฉืืจืืช ืื ืืืื ืืืชืจ ืืื ืืจืืืืช ืื ื ืจืืฆื ืืืืื ืฉื ื ืงืืฆืืจืื ืืจืืฉ.
ืงืืื ืื ืืช ืืืืช ืืขืืืคืืืืช ืฉื ืื ืืืช ืืคืฉืจ (ืืืื) ืืืฆืืจ ืืืฉืืืจ ืืงืืืฅ, ืืื ืฉืืืื ืงื ืืืชืจ ืืืคืฉ ืื. ืื ืืงืื ืฉืืืฆืจ ืืช ืืงืืืฅ:
$ echo {a..z} {A..Z} | tr ' ' '\n'| cat -n > priority
ืื ืฉืืจื ืืงืืืฅ ืืืืื ืืกืคืจ (ืืขืืืคืืช ืฉื ืืืืช) ืืืืจืื ืืืืช ืฉืขืืื ืืืืจืื:
$ head -4 priority
1 a
2 b
3 c
4 d
ืคืื ืืง ืฉื ื ืืื ื alias ืฉืงืืจื ืฉืืจืืช ื stdin ืืืืฉื ืืช ืกืืื ืืืกืคืจืื. ืืฉืชืืฉืชื ืื ืื ืืชืจืืื ืฉื ืืืื ืืจืืฉืื ืืืื ืืงืจื ืืื alias ืฉืืื ืฉืืืื ืขื ืืืืฉื:
$ alias sum='sed "/./s/^/+/" | tr -d "\n" | xargs echo 0 | bc '
ืืืื ืื? ืื ืืืืื ืืคืฉืจ ืืืืฆืื ืืช awk.
## ืืืง 1
ืืืชืืจ ืืจืืฉืื ืืื ืืืืง ืื ืฉืืจื ื-2. ื awk ืืฉ ืคืื ืงืฆืื ืืฉื substr ืฉืืฉืืืื ืขื length ืขืืฉื ืืช ืืงืกื:
$ awk '{ print(substr($0, 0, length/2), substr($0, length/2+1)) }' demo.txt
vJrwpWtwJgWr hcsFMMfFFhFp
jqHRNqRjqzjGDLGL rsFMfFZSrLrFZsSL
PmmdzqPrV vPwwTWBwg
wMqvLMZHhHMvwLH jbvcjnnSBnvTQFn
ttgJtRGJ QctTZtZT
CrZsJsPPZsGz wwsLwLmpwMDw
ืคืฉืื ืืืกืคืชื ืจืืื ืืืืืง ืืืืฆืข ืืื ืฉื ื ืืืฆืืื ืฉื ืืฉืืจื. ืืื ืขืืฉืื ืื ืื ื ืืืจ ืืืฆื ืืืจื ืืคืืชืจืื. ืืฆืขื ืืื ืืื ืืืฆืื ืืช ืืืืช ืฉืืืคืืขื ืืฉื ื ืืืฆืืื ืืืฉืืื ืื ืืคืฉืจ ืืืฉืชืืฉ ืืืืืื ืจืืืืืจื:
$ awk '{ print(substr($0, 0, length/2), substr($0, length/2+1)) }' demo.txt | egrep -o '([a-zA-Z]).* .*\1' | cut -c 1
p
L
P
v
t
s
ืืฉืืื ืืืืืืฃ ืื ืืืช ืืขืืืคืืช ืฉืื ืืืืืจืืช ืืื ื ืืื ืื ืืืชื ืื ืืืืช Hash. ืืคืฉืจ ืืืฉืชืืฉ ื awk ืืื ืืื ืืช ืืืช, ืืื ืื ื ืืขืืคืชื ืืชืช ืืืืฉื ืืขืืื ืงืฆืช ืืืชืจ ืืืืฉืืืจ ืืช ืืงืื ืืืชืจ ืงืฆืจ ืื ืคืฉืื ืฉืืืชื ืื ืืืช ื grep:
$ awk '{ print(substr($0, 0, length/2), substr($0, length/2+1)) }' demo.txt | egrep -o '([a-zA-Z]).* .*\1' | cut -c 1 | xargs -n 1 -I {} grep {} priority
16 p
38 L
42 P
22 v
20 t
19 s
ืืืกืืฃ ืฉืื awk ืืื ืืงืืช ืจืง ืืช ืืขืืืื ืืจืืฉืื ื ืืืฉืืื ืืืชื ื alias ืืกืืืื ืฉืืฆืจื ื ืืืชืืื:
$ awk '{ print(substr($0, 0, length/2), substr($0, length/2+1)) }' demo.txt | egrep -o '([a-zA-Z]).* .*\1' | cut -c 1 | xargs -n 1 -I {} grep {} priority| awk '{ print $1}' | sum
157
## ืืืง 2
ืืืืง ืืฉื ื ืื ืื ื ืฆืจืืืื ืืงืืช ืื 3 ืฉืืจืืช ืืืืฆืื ืืช ืืืืช ืืืฉืืชืคืช ืืฉืืืฉืชื. ืืื ืืืชืจ ืืื ื awk ืืฉืืื ืืืืกืืฃ ืฉืืจื ืจืืื ืืืจื ืื ืฉืืืฉ ืฉืืจืืช? ืืืฉืชื ื NR ืืืื ืืช ืืกืคืจ ืืฉืืจื, ืืืื ืื ื ืืืื ืืืืืง ืื ืืกืคืจ ืืฉืืจื ืืชืืืง ื-3:
$ awk '{ print } NR%3 == 0 { print "" }' demo.txt
vJrwpWtwJgWrhcsFMMfFFhFp
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
PmmdzqPrVvPwwTWBwg
wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
ttgJtRGJQctTZtZT
CrZsJsPPZsGzwwsLwLmpwMDw1 420
# ืืื ืงืื ืืชืงืืงื (ืืืืืช ืืืืคืกืงืจืืคื + ืจืืืงื)
ืืชืืชื ืื ืืืื ืงืืืคืื ื ืืช ืจืืืงื ืฉืืงืืืช ืจืฉืืื ืฉื ืคืจืืืื. ืื ื ืืืืข ืืืืคืกืงืจืืคื ืื ืืืกืคืชื ืื ืืืืจืช ืืืคืืกืื ืืื ืื ืฉืืฆื:
type PinkProps = {
page?: number;
itemsPerPage?: number;
items: Array<{ id: number, text: string }>;
};
function Pink({ page=1, itemsPerPage=25, items }: PinkProps) {
// component implementation ...
}
ืืืจื ืื ืืืื ื ืฆืจืืืื ืขืื ืงืืืคืื ื ืื ืืื ืื ืืืจ ืฆืจืืื ืืงืื ืจืฉืืืช ืคืจืืืื ืืกืื ืืืจ. ืืช page ื itemsPerPage ืืฉืืืจืื ืืืชื ืืืจ. ื ื, ืื ื ืืืืข ืืืืคืกืงืจืืคื ืืฉืืชื ืืืชืืชื ืืช ืืงืื ืืื:
type OrangeProps = Pick<PinkProps, "page"|"itemsPerPage"> & {
items: Array<{ id: number, visible: boolean }>
};
function Orange({ page=1, itemsPerPage=25, items}: OrangeProps) {
// component implementation ...
}
ืืืคื ืืฉื ืืืื ื ืฆืจืืืื ืื ืคืื ืงืฆืื ืฉืืงืืืช ืคืจืื ืืืื ืืชืื ืืขืจื ืืคืจืืืื ื OrangeProps. ืฉืื ืืขืื ืืฉืืชื, ืื ื ืืืืข ืืืืคืกืงืจืืคื:
function isValid(item: OrangeProps['items'][number]) {
// validate the item from orange props
}
ืขืืฉืื ืืืื ื ืจืื ืืช ืื ืืืืจืืช ืืืืคืืกืื ืืืื ืืื:
type PinkProps = {
page?: number;
itemsPerPage?: number;
items: Array<{ id: number, text: string }>;
};
type OrangeProps = Pick<PinkProps, "page"|"itemsPerPage"> & {
items: Array<{ id: number, visible: boolean }>
};
function isValid(item: OrangeProps['items'][number]) {
// validate the item from orange props
}
ืื ืืืืชื ืฆืจืื ืืืชืื ืชืืื ืืช ืืืคืก ืืื ืกืืืื ืฉืืืืชื ืืชืืื ืขื ืืืืืจืืช ืืืื. ืงื ืืจืืืช ืฉืืช ืืืืืจืืช ืฉืงืฉืืจืืช ืืืคืื ืฉืืื ืืืืฆืื ืืืืคืืก ืืื, ืืช ืฉื ื ืกืืื ืืคืจืืืื ืืืืคืืก ืฉื ื ืืื ืืงืื:
type Paginated = {
page?: number;
itemsPerPage?: number;
}
type TextItem = {
id: number;
text: string;
}
type ToggleItem = {
id: number;
visible: boolean;
}
type PinkProps = Paginated & {
items: Array<TextItem>;
};
type OrangeProps = Paginated & {
items: Array<ToggleItem>;
}
function isValid(item: ToggleItem) {
// validate the item from orange props
}
function Pink({ page=1, itemsPerPage=25, items }: PinkProps) {}
function Orange({ page=1, itemsPerPage=25, items}: OrangeProps) {}
ืืจืื ืืืชืจ, ืื, ืืื ืืจืื ืืืชืจ ืืจืืจ ืืงื ืืืจืืื.
ืืฉื ืืช ืงืฆืช ืงืื ืื ืคืขื ืจืง ืืฉืืื ืืืืกืืฃ ืืช ืืคืืฆ'ืจ ืืืืฉ ืื ืื ืืืฉื ืืกืคืืง ืืืื. ืืืืืื ืืืืกืืฃ ืื ื ืงืืืืช ืืงืจื ืืื ืื ืื ื ืืืจืื ืื ืืืืฉ ืืช ืืงืื ืืืืื ืืชืืืืื ืืืคืก. ืืืจืช ืืฉื ืฉืื ืื ืฉืืืจืื ืืงืืืงืืื ืื ืืืจ ืขืืื ืืืืืช ืืืืืจ ืืื.1 420
ืืืืจืืช ืขื ืฉืชื ืืฉืืืืช ืืืคืื ืืืืงืื ืืฉืืจืืช (awk ื xargs -0) ืขืืืจืช ืืืชืื Pipelines ืืืืื ืืืชืจ, ืื ืืืชืืจืื ืืืืชืืื ืืืืฅ ื Advent Of Code.
1 420
# ืคืืชืจืื Advent Of Code ืืื 1 ืืขืืจืช ืืื ืืงืก
ืืื ืื ืฉื ื ืืืฆืืืจ ืืืืืืช ืฉื Advent Of Code ืืชืืืื ืืืชืคืจืกื ืืืื. ืืืื ื ืขืืืื ืื ืืืืืชื ืืืืื ืฉืคื ืืืฉืชืืฉ ืื ืืคืืื ืื ืื ื ืืชืื ื ืืคืชืืจ ืืช ืืืื, ืืื ืืืืื ืืจืืฉืื ื ืฉืืชืคืจืกืื ืืืืืจื ืื ืฉืืคืขืืื ืืื ืืืฃ ืืงืืช ืืืื ืคืฉืืืื ืืืฉืืืืช ืคืฉืืืืช. ืืงืืฆืืจ ืืืื ื ืจืื ืืื ืืคืชืืจ ืืช Advent Of Code 2022 Day 1 ืืื ืืฆืืช ืืฉืืจืช ืืคืงืืื.
## ืืืฉืืื: ืืืฉืื ืงืืืจืืืช
ืืืชืืจ ืงืืืื ื ืจืฉืืืช ืืกืคืจืื ืฉืืืืฆืืช ืืื ืงืืืจืืืช ืกืืื ืืืืฃ ืืจืืฉืื, ืืืจืื ืฉืืจื ืจืืื ืืื ืขืื ืจืฉืืืช ืืกืคืจืื ืฉืืชืืืื ืืงืืืจืืืช ืฉืกืืื ืืืืฃ ืืฉื ื, ืืื ืขืื ืฉืืจืช ืจืืื ืืขืื ืจืฉืืืช ืืกืคืจืื ืืืื ืืืื. ืืงืืฆืืจ ืงืื ืืื:
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
ืืืฉ ืื ื ืฉืชื ืืฉืืืืช:
1. ืื ืกืืืืื ืืช ืจืฉืืืช ืืืกืคืจืื ืืื ืงืืืฆื, ืืื ืืกืืื ืืืืื ืืืืชืจ ืืื ืืงืืืฆืืช (ืืงืื ืืืืืื ืื 24000, ืกืืื ืืงืืืฆื ืืจืืืขืืช)
2. ืืื ืฉืืืฉืช ืืกืืืืื ืืืืืืื ืืืืชืจ ืืื ืืงืืืฆืืช (ืืงืื ืืืืืื ืื 45000, ืืกืืื ืฉื 24000, 11000 ื-10000).
## ืืื ืืืฉืืื ืกืืืืื ืืืื ืืงืก
ืืคืงืืื bc ืืื ืืจื ืงืื ืืืฉื ืกืืื ืฉื ืืกืคืจืื. ืื ืฆืจืื ืืขืฉืืช ืงืฆืช ืื ืืคืืืฆืืืช ืขื ืืงืื ืืื ืฉืืชืืื ืื, ืืื ืืืืื bc ืืงืืืช ืชืจืืื ืืฉืืื ื ืืจื stdin ืืคืืชืจืช ืืืชื. ืืื ืืืื ืื ื:
$ echo 2 + 3 | bc
5
$ echo 5 + 7 + 10 | bc
22
ืืขืืจืช bc ืื ื ืืืื ืืืชืื alias ืงืื ืฉืืืงื ืจืฉืืืช ืืกืคืจืื ื stdin ืืืืคืืก ืืช ืกืืืื:
alias sum='sed "/./s/^/+/" | tr -d "\n" | xargs echo 0 | bc '
ื alias ืืืกืืฃ ืกืืื ืคืืืก ืืคื ื ืื ืืกืคืจ (ืืืื ืขื ืฉืืจืืช ืจืืงืืช), ืืืจื ืื ืืืืง ืืช ืื ืืืจืืืืช ืฉืืจื ืืื ืฉืื ืืืกืคืจืื ืืืืชืื ืืฉืืจื ืืืช, ืืืกืืฃ 0 ืืืชืืื ืืืืคืืก ืืช ืืฉืืจื ื stdout ืืขืืจืช echo, ืืืฉื ื bc ืืื ืืืืคืืก ืืช ืืกืืื.
## ืืืืจื ืืชืจืืื
ืขืืฉืื ืฉืื ืื ื ืืืืขืื ืืื ืขืืื ืืืืืจ ืขืืืื ื ืฉืืจ ืื ื ืืืืจ ืื ืงืืืฆื ืื ืคืจื. ืืืืจ ืฉืื ืงืืืฆื ืืืคืจืืช ืืืงืืืฆื ืฉืืืจืื ืืฉืืจื ืจืืงื, ื ืฆืืจื ืืืืืืฃ ืื "ืจืฆืฃ ืฉื ืฉืืจืืช ืขื ืืฉืืจื ืืจืืงื" ืืชืจืืื ืืืืืจ ืืชืืื. ืืืืืื ืืืจืืช ื ืจืฆื ืืืคืื ืืช ืืงืื ื:
0 +1000 +2000 +3000
0 +4000
0 +5000 +6000
0 +7000 +8000 +9000
0 +10000
ืืจื ืืืช ืืืคืื ืงืืืฆืืช ืืฉืืจืืช ืืื ืืืคืื ืื ืฉืืจื ืจืืงื ืืชื Null (ืืืืืจ \0), ืืื ืืืฉืชืืฉ ื xargs ืืื ืืงืืช ืืช ืื ืืืจืืืื ืืื ืขื ืชื ื Null. ืืืฉื ืืฉืืื ืืืืคืืก ืืช ืืืงืกื Elf Group ืืคื ื ืื ืงืืืฆื ืื ื ืืืื ืืืคืขืื:
$ cat input.txt| sed 's/^$/\x0/' | xargs -0 -n 1 echo "Elf Group: "
ืืื ืื ื ืื ืจืืฆื ืืืืคืืก ืืช ืืชืืืืืช Elf Group ืืื ืืืฉื ืกืืื - ืืืฉืืื ืื ืฆืจืื ืืืืืช ืงืฆืช ืืืชืจ ืืฆืืจืชืืื:
1. ื ืจืฆื ืืืืกืืฃ ืกืืื + ืืชืืืืช ืื ืฉืืจื ืื ืจืืงื ืืงืืืฆื.
2. ื ืจืฆื ืืืืืง ืืช ืืืจืืืืช ืฉืืจื (ืืื ืืงืื ืฉืืจื ืืืช ืืจืืื ืฉืืืืฆืืช ืชืจืืื).
3. ื ืจืฆื ืืืืคืืก 0 ืืชืืืืช ืืฉืืจื.
ื Pipeline ืฉื ืื ื ืจืื ืื:
$ cat input.txt| sed 's/^$/\x0/' | sed '/^[0-9]/s/^/+/' | tr -d '\n' | xargs -0 -n 1 echo 0
0 +1000+2000+3000
0 +4000
0 +5000+6000
0 +7000+8000+9000
0 +10000
ืืืช ืื ืืคืฉืจ ืืฉืืื ื bc ืืื ืืืืืืฃ ืื ืฉืืจื ืืชืืฆืืช ืืชืจืืื, ืืืืืจ ืืกืืื ืฉืื:
$ cat input.txt| sed 's/^$/\x0/' | sed '/^[0-9]/s/^/+/' | tr -d '\n' | xargs -0 -n 1 echo 0 | bc
6000
4000
11000
24000
10000
ืืฉืืจื ืขื ืืกืืื ืืื ืืืื? ืื ืคืฉืื sort ื tail:
$ cat input.txt| sed 's/^$/\x0/' | sed '/^[0-9]/s/^/+/' | tr -d '\n' | xargs -0 -n 1 echo 0 | bc | so
rt -n | tail -1
24000
ืกืืื ืฉืืืฉืช ืืฉืืจืืช ืืืืืืืช ืืืืชืจ? ืคื ืืคืฉืจ ืืฉืื ืืช ื alias ืฉืืฆืจื ื ืืชืืืืช ืืคืืกื:
$ cat input.txt| sed 's/^$/\x0/' | sed '/^[0-9]/s/^/+/' | tr -d '\n' | xargs -0 -n 1 echo 0 | bc | sort -n | tail -3 | sum
45000
## ืืืืื ื ืืกืฃ - awk
ืืื ื ืืกืฃ ืฉืชืืื ืขืืืจ ืืคืชืืจ ืืขืืืช ืืื awk. ืืืืจ ืื awk ืืฉ ืืืจ ืชืืืืจ ืืืืืจืช ืืฉืชื ืื ืื ื ืืืื ืคืฉืื ืืกืืื ืืช ืื ืืืกืคืจืื ืขื ืืฉืืจื ืืจืืงื, ืืืฉืื ื ืืืืข ืืืื ืืืคืก ืืช ืืกืืื. ืืืช ืืืชืืื:
cat input.txt| awk '/^$/ { print sum; sum = 0 } { sum += $1 }'
ืืฉืื ืืฉืืื ืืกืืื ืืืืื ืืืืชืจ ืืกืคืืง ืืืืกืืฃ sort ื tail:
$ cat input.txt| awk '/^$/ { print sum; sum = 0 } { sum += $1 }' | sort -n | tail -1
24000
ืืืฉืืื ืกืืื ืฉืืืฉืช ืืืืืืื ืืืืชืจ ืื ื ืืฉืื ืืช ื alias ืืชืืืืช ืืคืืกื:
$ cat input.txt| awk '/^$/ { print sum; sum = 0 } { sum += $1 }' | sort -n | tail -3 | sum
450001 420
ืื ืืืจืื ืืฉืขื 10 ื ืืคืืฉ ืืืื ืืืืืื ืจ ืืืืคืกืงืจืืคื,
ืืฉืื ืคื ืืื ืง ืืื ืืงืืช ืืคื ื ืืืงืจื ืฉืื ืืกืคืงืชื ืืืืจืฉื ืืจื ืืืขืจืืช
1 420
# ืืืคื ืืืืช ืขื ืขืืฉืื?
ืืื ืืขืื ืืชืืื ื ืืฉ ืืกืคืจ ืคืืชืจืื ืืช, ืืืงื ืืืืื ืืืืจืื. ืืฉืื ืื ื ืืกืชืืืื ืขื ืืขืจืืช ืฉืืืจ ืขืืืืช ืืืืืื ืืจื ืืืฉื ืืืื ืืืชืจ, ืืืืจ ืืจืืฉืื ืฉืืืื ืืขืฉืืช ืืื Refactoring ืืงืื ืืื ืืฉืื ืืช ืืืจื ืืืืฉื ืืืืืื ืฉืืื ืืืืช ืืืื ืืืชืจ.
ืืืืจ ืืฉื ื ืืืืฉืื ืืืชืจ ืืื ืืืืื ืืื ืื ืจืืืช ืืช ืืืจื ืืืืื ืืืชืจ ืงืืื? ืืืคื ืืืื ืืืคืฉ? ืืืืื ืืืจืื ืืืื ืืฉื ืืช ืืืชื ืืืืช ืืืื ืืืืืช ืืื ืืืืืฉืฃ ืืืืชืจ ืืจืืื ืืืืืช?
ืืชืื ืชืื ืืืืื ืืืคืฉืื ืื ืืืื ืคืืชืจืื ืืช ืืขืืืื ืืืชืจ, ืื ืคืืชืจืื ืืช ืืืืื ืืืชืจ ื ืืชื ืื ืืืชืจ ืขืจื - ืื ืจืง ืฉืื ืืฉืคืจื ืืช ืืงืื ืืงืืื, ืื ืื ืืืคืื ืืช ืืืขืืืช ืืืืืช ืืงืืืช ืืืชืจ ืืคืืชืจืื.
1 420
ืฉืื ืืชื ืืืืืื ืืฉืืง ืขื ืืงืื ืืืืชื ืงืืืกื ืืืืงืก ืืงืืฉืืจ:
https://codesandbox.io/s/damp-rain-q71w55?file=/src/App.js
ืืฉื ืืืฅ ืขื ืืืคืชืืจ ืืืืฉ ืื ืื ื ืจืืืื ืฉืงืืืื ื ืืืืขืืช render ืจืง ืืืคืจืืืื ืฉืืืืช ืืฉืชื ื (ืฉื ื ืคืจืืืื, ืืื ืืืื ืืช ืืชืืกืคืช ืืืงืกื ืืืฉื ื ืงืืื ืชืืกืคืช).
ืืชืืื ืืืช ืืืืืืช ืืืชืจ, ืืฉืฉืืืจื ืขื ืืืืช References ืืืืื ืืืกืื ืืื ืืคืงืืื, ืจื ืืจืื ืืขืื ืืืืื ืื, ืืื ืืงื ืืื ืชืืื ืืฉืืืจ ืขื ืืงืื ืฉืืื ืขืงืื ืื ืืืจื ืงืืืช ืขืืืื ืื ืืืฉืจืช.
Endi mavjud! Telegram Tadqiqoti 2025 โ yilning asosiy insaytlari 
