From a08193931e59540efd1054badb09ed283e7f4f90 Mon Sep 17 00:00:00 2001 From: Turiiya <34311583+ttytm@users.noreply.github.com> Date: Wed, 10 Apr 2024 02:40:53 +0200 Subject: [PATCH] Updated V for CPP developers (markdown) --- V-for-CPP-developers.md | 239 +++++++++++++++++++++++----------------- 1 file changed, 135 insertions(+), 104 deletions(-) diff --git a/V-for-CPP-developers.md b/V-for-CPP-developers.md index 61ce898..eae7682 100644 --- a/V-for-CPP-developers.md +++ b/V-for-CPP-developers.md @@ -2,234 +2,265 @@
-#include <iostream> + +```cpp +#include+``` +int main() { - std::cout << "Hello World!" << "\n"; + std::cout < "Hello World!" < "\n"; } -
+ +```v fn main() { - println('Hello World!') + println('Hello World!') } -+``` +
-std::vector<int> numbers = {1, 2, 3, 4}; -+ +```cpp +std::vector
+ +```v numbers := [1, 2, 3, 4] -+``` +
+ +```cpp numbers.push_back(5); -+``` +
-numbers << 5 -+ +```v +numbers < 5 +``` +
+ +```cpp std::copy(numbers.begin(), numbers.end(), - std::ostream_iterator+ std::ostream_iterator(std::cout, " ")); -std::cout << '\n'; -
+ +```v println(numbers) -+``` +
-std::copy_if(numbers.begin(), numbers.end(), - std::back_inserter(bar), - [](int i){ return i % 2 == 0; }); -+```cpp +std::copy_if(numbers.begin(), numbers.end(), + std::back_inserter(bar), + [](int i){ return i % 2 == 0; }); +``` +
+ +```cpp numbers.filter(it % 2 == 0) -+``` +
-#include <iostream> -#include <fstream> + +```cpp +#include+ text.assign(std::istreambuf_iterator+#include std::ifstream f("path"); std::string text; - text.assign(std::istreambuf_iterator (f), {}); - if (!f) - std::cerr << "error reading from file\n"; -
+ +```v import os + text := os.read_file(path) or { - eprintln(err) + eprintln(err) } -+``` +
-template <typename T> + +```cpp +template+auto value = simple_fnauto simple_fn(T param) { - return param; + return param; } -auto value = simple_fn<int>(1); -
-fn simple_fn<T>(param T) T { - return param + +```v +fn simple_fn[T](param T) T { + return param } value := simple_fn(1) -+ +``` +
-template <typename T> + +```cpp +template+ +``` +struct generic_struct { - T value; - void generic_method(); + T value; + void generic_method(); }; -template <typename T> -generic_struct<T>::generic_method() { - return; +template +generic_struct :generic_method() { +return; } -
-struct GenericStruct<T> { - value T + +```v +struct GenericStruct[T] { + value T } - -fn (g GenericStruct<T>) generic_method() { - return +fn (g GenericStruct[T]) generic_method() { + return } -+``` +
-#include <iostream> + +```cpp +#include+std::cout << is_numberusing Number = int; -template <typename T> +template consteval bool is_number(T data) { - if constexpr (std::is_same<T, Number>()) { - return true; - } else { - return false; - } + if constexpr (std::is_same ()) { + return true; + } else { + return false; + } } -std::cout << is_number<Number>(0) << "\n"; -
+ +```v type Number = int -fn is_number<T>(data T) bool { - $if T is Number { - return true - } $else { - return false - } +fn is_number[T](data T) bool { + $if T is Number { + return true + } $else { + return false + } } - println(is_number(Number(0))) -+ +``` +
-#include <iostream> -#include <map> + +```cpp +#include+``` ++#include
- +```v my_map := map { - 'KEY_1': 0 - 'KEY_2': 10 + 'KEY_1': 0 + 'KEY_2': 10 } println(my_map) -+``` +