오피쓰 opss101닷컴 대전마사지⠛대전휴게텔▿대전출장안마⠕대전오피

2024-01-26 Thread adorovos
대전OP⠕오피쓰 opss101닷컴 대전마사지⠛대전휴게텔▿대전출장안마⠕대전오피대전오피대전OP⠕오피쓰 opss101닷컴 대전마사지⠛대전휴게텔▿대전출장안마⠕대전오피대전오피대전OP⠕오피쓰 opss101닷컴 대전마사지⠛대전휴게텔▿대전출장안마⠕대전오피대전오피대전OP⠕오피쓰 opss101닷컴 대전마사지⠛대전휴게텔▿대전출장안마⠕대전오피대전오피대전OP⠕오피쓰 opss101닷컴 대전마사지⠛대전휴게텔▿대전출장안마⠕대전오피대전오피대전OP⠕오피쓰 opss101닷컴 대전마사지⠛대전휴게텔▿대전출장안마⠕대전오피대전오피대전OP⠕오피쓰 opss101닷컴

부산오피 OPSS101닷컴 ⠦오피쓰 부산키스방⠦부산출장마사지 부산휴게텔

2024-01-26 Thread adorovos
부산오피 OPSS101닷컴 ⠦오피쓰 부산op▷부산키스방⠦부산출장마사지⠽부산마사지⠦부산휴게텔부산오피 OPSS101닷컴 ⠦오피쓰 부산op▷부산키스방⠦부산출장마사지⠽부산마사지⠦부산휴게텔부산오피 OPSS101닷컴 ⠦오피쓰 부산op▷부산키스방⠦부산출장마사지⠽부산마사지⠦부산휴게텔부산오피 OPSS101닷컴 ⠦오피쓰 부산op▷부산키스방⠦부산출장마사지⠽부산마사지⠦부산휴게텔부산오피 OPSS101닷컴 ⠦오피쓰 부산op▷부산키스방⠦부산출장마사지⠽부산마사지⠦부산휴게텔부산오피 OPSS101닷컴 ⠦오피쓰 부산op▷부산키스방⠦부산출장마사지⠽부산마사지

How to determine whether Import expected packages?

2024-01-26 Thread Araq
I you mind the dependency to PCRE use an all-native Nim regex library like

Nim safety features like Zig & Rust?

2024-01-26 Thread elcritch
> Those are fair points for the standard library. The only remaining argument I > can see for custom allocators is that specific systems need specific > allocators, e.g. fujifilm camera's firmware pre-allocates large arrays for > the whole system memory (see >

Is `concept` similar to `interface` / `trait`?

2024-01-26 Thread mratsim
Emmy has a big use of concepts: type AdditiveMonoid* = concept x, y, type T x + y is T zero(T) is T AdditiveGroup* = concept x, y, type T T is AdditiveMonoid -x is T x - y is T Multiplic

How to determine whether Import expected packages?

2024-01-26 Thread aiac
Thank you for your explanation ;-)

Is `concept` similar to `interface` / `trait`?

2024-01-26 Thread Isofruit
Note: I took the liberty to moderate the thread to be more on point for future readers.

Is `concept` similar to `interface` / `trait`?

2024-01-26 Thread aiac
Very useful, thank you ;-)

How to determine whether Import expected packages?

2024-01-26 Thread Isofruit
There is no unified solution for this. Typically what I do in such scenarios is I add a compile-time switch as that is typically how I design the lib at that point. So if the user wants X they need to compile with `nim c -d:enableStdRe `. In your code you can then put the code inside of a when

Is `concept` similar to `interface` / `trait`?

2024-01-26 Thread Isofruit
Owlkettle (a GTK wrapper) makes minor use of them in order to provide a better generic solution for an "automatic-form-generator". Other than that, a lib that makes heavier use of it would be traitor: Made by ElegantBeef -Who is defin

How to determine whether Import expected packages?

2024-01-26 Thread aiac
i want to that lib import std/re and use std/re functions only when user code import std/re

How to determine whether Import expected packages?

2024-01-26 Thread aiac
should be somethings like `Class.forName("xxx")` in Java or add features in Rust ?

Is `concept` similar to `interface` / `trait`?

2024-01-26 Thread nasl
You may already know it, below Github search string will find all the nim code using concept "= concept" language:Nim path:/ Run

How to determine whether Import expected packages?

2024-01-26 Thread Clonk
It's not clear what you mean, but there should never be a case where you need to check in library code the import of the user code. If your library has required dependencies, then your module should re-export them. For example : # Package foo # src/foo/bar.nim proc ba

How to determine whether Import expected packages?

2024-01-26 Thread Chronos
That would never compile I'm pretty sure, since you can't call a module namespace, you'd either have to check if a function from that module exists or possibly use `when declared(strutils)`, I'm not sure though, I ended up just using `when (compiles: import strutils): # code`

How to determine whether Import expected packages?

2024-01-26 Thread aiac
For library, how to determine user code whether has imported expected packages # user code import std/re # lib code when import("std/re"): echo "std/re was imported" Run

Parser combinators experiment causes Error: "cannot instantiate return:type"

2024-01-26 Thread Araq
I think it's: proc either*(parsers: varargs[Parser]): Parser = let parsers = @parsers return proc (input: string): ParseResult = for p in parsers: let res = p(input) if res.success: return res ret

Parser combinators experiment causes Error: "cannot instantiate return:type"

2024-01-26 Thread nimaoth
I think you could store the varargs in a local seq and then capture that import std/sequtils proc either*(parsers: varargs[Parser]): Parser = let parsers = parsers.toSeq return proc (input: string): ParseResult = for p in parsers: let res

Parser combinators experiment causes Error: "cannot instantiate return:type"

2024-01-26 Thread niontrix
@Araq I appreciate the links. Thanks! I'll have look at those projects. Creating these parser combinators is just an experiment to get a better understanding of Nim as a language, though. So, I think my question is: Can I define a procedural type like I did and pass it around to a function that

how to get lower/upper bound of Slice

2024-01-26 Thread aiac
proc getLowerBound(x: Slice[int]): int = x.low # ? but error Run

Is `concept` similar to `interface` / `trait`?

2024-01-26 Thread aiac
thanks

Is `concept` similar to `interface` / `trait`?

2024-01-26 Thread Araq
Concepts are generic constraints, they are not interfaces and not traits, they have nothing to do with dynamic bindin

Parser combinators experiment causes Error: "cannot instantiate return:type"

2024-01-26 Thread niontrix
Ok, my next probably stupid step is: I want to create a parser combinator function that takes a variable amount of other parser combinators and creates a new one. I thought about using a varargs[Parser] parameter, but I think I unfortunately don't understand it correctly at that point. My code i

Parser combinators experiment causes Error: "cannot instantiate return:type"

2024-01-26 Thread Araq
There are excellent parser generator available. Please study how they work. "Combintators" are a