小编Ste*_*ski的帖子

函数式编程中的滑动窗口匹配

我正在尝试实现一个滑动窗口算法来匹配文本文件中的单词.我来自程序背景,我在Erlang这样的函数式语言中首次尝试这样做似乎需要时间O(n ^ 2)(甚至更多).如何用函数式语言做到这一点?

-module(test).
-export([readText/1,patternCount/2,main/0]).

readText(FileName) ->
    {ok,File} = file:read_file(FileName),
    unicode:characters_to_list(File).

patternCount(Text,Pattern) ->
    patternCount_(Text,Pattern,string:len(Pattern),0).

patternCount_(Text,Pattern,PatternLength,Count) ->
    case string:len(Text) < PatternLength of 
        true -> Count;
        false ->
            case string:equal(string:substr(Text,1,PatternLength),Pattern) of
                true ->
                    patternCount_(string:substr(Text,2),Pattern,PatternLength,Count+1);
                false ->
                    patternCount_(string:substr(Text,2),Pattern,PatternLength,Count)
            end
    end.

main() ->
    test:patternCount(test:readText("file.txt"),"hello").
Run Code Online (Sandbox Code Playgroud)

erlang functional-programming

1
推荐指数
1
解决办法
264
查看次数

Erlang消息给不存在的PID

Erlang运行时对发送到不存在的进程的消息做了什么?例如,生成一个进程,然后在它终止后,另一个进程向它发送一条消息.

erlang

1
推荐指数
1
解决办法
512
查看次数

Erlang中模式匹配字符串的正确方法

对于erlang中的模式匹配字符串,哪种方法更好?

receiveString("someString") -> %doStuff;
receiveString("differentString") -> %doOtherStuff.
Run Code Online (Sandbox Code Playgroud)

要么

receiveString(A) when A == "someString" -> %doStuff;
receiveString(A) when A == "differentString" -> %doOtherStuff.
Run Code Online (Sandbox Code Playgroud)

此外,是否可以有多个when条款?

erlang functional-programming pattern-matching

1
推荐指数
1
解决办法
113
查看次数

Erlang - 合并地图

我试图弄清楚如何以maps允许我使用相同键处理元素的方式合并两个.

例如,合并

#{"Ala" => 1,"kota" => 3}

#{"kota" => 4}

应该导致:

#{"Ala" => 1,"kota" => 7}

erlang maps

1
推荐指数
1
解决办法
395
查看次数

通过短信自动读取OTP

我正在尝试通过使用这种方法来读取短信。但是我的应用程序未读取Message。

我尝试过的代码。

权限:

<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
Run Code Online (Sandbox Code Playgroud)

活动(主要代码):

class OtpActivity : AppCompatActivity(), View.OnClickListener {
    private var smsVerifyCatcher: SmsVerifyCatcher? = null
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_otp)
        smsVerifyCatcher = SmsVerifyCatcher(this, OnSmsCatchListener { message ->
            val code = parseCode(message)//Parse verification code
            Log.e("Code", code)
            //then you can send verification code to server
        })
        smsVerifyCatcher!!.setPhoneNumberFilter("0902249") // I passed 10 digit number here
        smsVerifyCatcher!!.setFilter("Ashish") // For extra i added Filter for name
    }
    private fun parseCode(message: String): …
Run Code Online (Sandbox Code Playgroud)

sms android one-time-password kotlin

1
推荐指数
1
解决办法
294
查看次数

如何在 React Native 中构建带有计数器计时器的 OTP 组件,并使用功能组件重新发送 OTP 功能

我已经尝试过几篇文章来构建可定制的 OTP 组件,但很难获得它

其中一些可以在IOS平台上运行,但不能在android平台上运行

最后,作为一个反应原生新手,经过一番努力,我完成了这一点

javascript one-time-password reactjs react-native react-hooks

1
推荐指数
1
解决办法
6091
查看次数

Django Rest Framework中的OTP验证

我正在尝试制作一个 django 应用程序,我想在其中创建一个 opt 验证,但我很困惑什么是正确的方法。这是我到目前为止所做的:

模型.py

class User(AbstractUser):
    is_shipper = models.BooleanField(default=False)
    is_ftlsupp = models.BooleanField(default=False)
    is_ptlsupp = models.BooleanField(default=False)
    otp = models.IntegerField(default=1620122)
    verified = models.BooleanField(default=False)
Run Code Online (Sandbox Code Playgroud)

序列化器.py

class UserSerializer(serializers.ModelSerializer):
    password = serializers.CharField(write_only=True)

    class Meta:
        model = User
        fields = "__all__"
        read_only_fields = ('id', 'verified')

    def create(self, validated_data):
        user = super(UserSerializer, self).create(validated_data)
        user.set_password(validated_data['password'])

        def random_with_N_digits(n):
            range_start = 10**(n-1)
            range_end = (10**n)-1
            return randint(range_start, range_end)

        otp = random_with_N_digits(6)
        user.otp = otp
        user.save()

        subject = 'Please Confirm Your Account'
        message = 'Your 6 Digit Verification Pin: …
Run Code Online (Sandbox Code Playgroud)

python django one-time-password django-rest-framework

1
推荐指数
1
解决办法
4807
查看次数

为什么Erlang统计数据(运行时)可以大于统计数据(wall_clock_time)

Erlang手册页说:

请注意,运行时间是 Erlang 运行时系统中所有线程的运行时间之和,因此可能大于挂钟时间

但从这个wiki 页面来看,CPU 时间(运行时)似乎总是小于挂钟时间:

两者之间的差异包括由于编程延迟或等待资源可用而花费的时间。

运行时间怎么可能大于挂钟时间?

cpu erlang runtime

0
推荐指数
1
解决办法
456
查看次数

一次在Node js中输入密码

我想将OTP用于我的node-express API.现在我可以使用用户名和密码对内容进行个性化设置,但是想使用手机号码和OTP来实现.我可以使用哪些参考资料?

one-time-password node.js express

0
推荐指数
2
解决办法
1万
查看次数

使用依赖的变体

我有这个代码:

cnf.mli

type literal
type clause
type cnf
type l_diff

val l_compare: literal -> literal -> l_diff
Run Code Online (Sandbox Code Playgroud)

cnf.ml(部分)

type l_diff = Same | Negation | Different
Run Code Online (Sandbox Code Playgroud)

checker.ml(部分)

open Cnf
type solution = (literal * bool) list

let rec solve_literal sol l =
    match sol with
    | [] -> false
    | (hl, b)::rs when (l_compare l hl) = Same -> b
    | (hl, b)::rs when (l_compare l hl) = Negation -> not b
    | _::rs -> solve_literal rs l
Run Code Online (Sandbox Code Playgroud)

这适用于utop使用:

#mod_use …
Run Code Online (Sandbox Code Playgroud)

ocaml

0
推荐指数
1
解决办法
78
查看次数

内容类型 oneTimeCode 无法与 IQkeyboard 管理器一起快速工作

我想在我的文本字段中显示 OTP 代码,我在 google 中搜索并获得以下代码。

在我的应用程序中我使用 IQkeyboard 管理器

但 OTP 自动填充对我不起作用。

@IBOutlet weak var otp: CustomTextField!    
if #available(iOS 12.0, *) {
                otp.textContentType = .oneTimeCode
     }
Run Code Online (Sandbox Code Playgroud)

我按照以下方式收到消息。

Your ***** verification code is :969514
Run Code Online (Sandbox Code Playgroud)

one-time-password ios swift

0
推荐指数
1
解决办法
4483
查看次数

如何从java中的标准输入读取长值?

util.Scanner用来读取用户的输入.我不明白如何读取长数据类型值.

Scanner scr=new Scanner(System.in);
long l=scr.nextInt();
Run Code Online (Sandbox Code Playgroud)

我无法使用上面的代码读取64位数据 - 它只是给我一个输入不匹配异常.

java input long-integer

-1
推荐指数
1
解决办法
2万
查看次数

2种免费通话方式 - 有区别吗?

free在堆上分配内存后,这两种调用变量之间是否存在差异:

// variant 1
int* p1 = (int*) malloc(sizeof(int)*4);
free(p1);

//variant 2
int* p2 = (int*) malloc(sizeof(int)*4);
free(*p2);
*p2 = NULL;
Run Code Online (Sandbox Code Playgroud)

c heap malloc free pointers

-2
推荐指数
1
解决办法
80
查看次数